اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

الردود الموصى بها

قام بنشر

السلام عليكم أخواني

ممكن مساعدة بخصوص عدم التكرار في المربعات النص التالية

الإسم واللقب 

إسم الأب

رقم القطعة

وإذا كان غير مكرر اي إسم أخر نعمل له قبول وإذا كان مكرر يرجعني الى السجل الذي به التكرار

وشكرا

 

المحيطات الفلاحية.rar

قام بنشر

حياك الله اخي الكريم

 

ضع هذا الكود في حدث عند الخروج او بعد التحديث 

Private Sub NOM_Exit(Cancel As Integer)
text1 = Nz(DCount("[nom]", "ÇáãÚáæãÇÊ", "[nom]=forms!ÊÓÌíá!nom"), 0)
If text1 > 3 Then
MsgBox "åÐÇ ÇáÍÞá ãßÑÑ ËáÇË ãÑÇÊ"
Me.NOM = ""
Me.NOM.SetFocus
End If
End Sub

text1 هو حقل غير منظم في النموذج ليريك المجموع بإمكانك اخفائة .

 

وبأمكانك  استخدام متغير بدلا منه . .. 

 

انصحك بإستخام المسميات الإنجليزية ...  حتى للنماذج والجداول

 

اول رمز غير ظاهر في هذا الكود هو : اسم جدول (المعلومات)

والثاني نموذج( التسجيل).

 

هذا شرح لأحد الطلبات وهو nom  وبإمكانك تطبيقة على البقية.

 

بالتوفيق ان شاء الله.

  • Like 1
قام بنشر

وعليكم السلام ورحمة الله

 

بعد أذن معلمي الفاضل آخر الأرض أعذرني أستاذي قمت بالتعديل أثناء عدم وجود ردود

تفضل أخي الكريم

هذا مقترح آخر بكود

'*********************************
'Code sample courtesy of srfreeman
'*********************************

Dim SID As String
Dim stLinkCriteria As String
Dim rsc As DAO.Recordset

Set rsc = Me.RecordsetClone

SID = Me.NOM.Value
stLinkCriteria = "[NOM]=" & "'" & SID & "'"

    'Check StudentDetails table for duplicate StudentNumber
    If DCount("NOM", "Qry", stLinkCriteria) > 0 Then
        'Undo duplicate entry
        Me.Undo
        'Message box warning of duplication
        MsgBox "ÇáÇÓã ãßÑÑ " _
        & (SID) & " ãÓÌá ãä ÞÈá." _
        & vbCr & vbCr & "ÓíÊã ÇÑÔÇÏß ÇáÂä Çáì ÇáÇÓã ÇáãÓÌá.", vbInformation _
        , "ÈíÇäÇÊ ãßÑÑÉ"
        'Go to record of original Student Number
        rsc.FindFirst stLinkCriteria
        Me.Bookmark = rsc.Bookmark
    End If

Set rsc = Nothing
End Sub

وقمت بتصحيح العلاقة بين جدول المحيطات والمعلومات

 

المحيطات الفلاحية----UP.rar

  • Like 1
قام بنشر

حياك الله اخي الكريم

 

ضع هذا الكود في حدث عند الخروج او بعد التحديث 

Private Sub NOM_Exit(Cancel As Integer)
text1 = Nz(DCount("[nom]", "ÇáãÚáæãÇÊ", "[nom]=forms!ÊÓÌíá!nom"), 0)
If text1 > 3 Then
MsgBox "åÐÇ ÇáÍÞá ãßÑÑ ËáÇË ãÑÇÊ"
Me.NOM = ""
Me.NOM.SetFocus
End If
End Sub

text1 هو حقل غير منظم في النموذج ليريك المجموع بإمكانك اخفائة .

 

وبأمكانك  استخدام متغير بدلا منه . .. 

 

انصحك بإستخام المسميات الإنجليزية ...  حتى للنماذج والجداول

 

اول رمز غير ظاهر في هذا الكود هو : اسم جدول (المعلومات)

والثاني نموذج( التسجيل).

 

هذا شرح لأحد الطلبات وهو nom  وبإمكانك تطبيقة على البقية.

 

بالتوفيق ان شاء الله.

شكرا لك أخي على الإهتمام

طبقت كل من نصحتني به

 ولكن وصلت لنتيجة صحيحة مرة واحدة فقط

ومن بعد لم تفلح

ارجو التعديل على المرفق في ثلاثة

وشكرا لك 

قام بنشر

حياك الله اخي عبدالرحمن

 

ومنكم نستفيد وبكم نستزيد ..

 

اخي السائل يبدو انت ايضا قمت بالرد قبل مشاهدة رد الأخ عبدالرحمن هاشم ..

 

شوف مرفق الأخ عبدالرحمن ..

  • Like 1
قام بنشر

شكر لكما أخواني آخر الأرض و عبد الرحمن هاشم  على المساعدة

 

هذا هو المطلوب ولكن عند إسم الأب طلبت عمل تنبيه فقط ويقبل الإسم المكرر لأنه الكثير من الأباء لهم نفس الأسماء

قام بنشر

بارك الله فيكم اخواني جميعاً 

 

مشاركة معكم لعدم تكرار الثلاثة حقول بالسجل و العودة الى السجل المكرر .... مع عمل بعض التعديلات في الاسماء ( الجدول و الاستعلام  و الحقول المعنية ) و ايضاً التعديل في الربط بين الجدولين في الاستعلام 

 

و هذا هو الكود في حدث قبل التحديث للنموذج :

Dim intId As Integer
Dim rs As DAO.Recordset
Set rs = Me.Recordset


If DCount("*", "qry1", "[nom] ='" & Me.NOM & "' AND [nom_pere] = '" & _
    Me.Nom_Pere & "' and [widget] = " & Me.Widget & "") > 0 Then
    intId = DLookup("id", "qry1", "[nom] ='" & Me.NOM & "' AND [nom_pere] = '" & _
    Me.Nom_Pere & "' and [widget] = " & Me.Widget & "")
    
    MsgBox "مكرر في السجل رقم" & " " & intId
    Me.Undo
    rs.FindFirst "[id] = " & intId
Else
    Exit Sub
End If
Set rs = Nothing

المرفق بعد التعديل

 

 

بالتوفيق للجميع

المحيطات الفلاحية.rar

  • Like 2
قام بنشر

بارك الله فيكم اخواني جميعاً 

 

مشاركة معكم لعدم تكرار الثلاثة حقول بالسجل و العودة الى السجل المكرر .... مع عمل بعض التعديلات في الاسماء ( الجدول و الاستعلام  و الحقول المعنية ) و ايضاً التعديل في الربط بين الجدولين في الاستعلام 

 

و هذا هو الكود في حدث قبل التحديث للنموذج :

Dim intId As Integer
Dim rs As DAO.Recordset
Set rs = Me.Recordset


If DCount("*", "qry1", "[nom] ='" & Me.NOM & "' AND [nom_pere] = '" & _
    Me.Nom_Pere & "' and [widget] = " & Me.Widget & "") > 0 Then
    intId = DLookup("id", "qry1", "[nom] ='" & Me.NOM & "' AND [nom_pere] = '" & _
    Me.Nom_Pere & "' and [widget] = " & Me.Widget & "")
    
    MsgBox "مكرر في السجل رقم" & " " & intId
    Me.Undo
    rs.FindFirst "[id] = " & intId
Else
    Exit Sub
End If
Set rs = Nothing

المرفق بعد التعديل

 

 

بالتوفيق للجميع

شكرا لك اخي يوسف

يظهر التنبيه بعد إملاء كل السجلات 

اي ان التكرار إذا كانت نفس المعلومات فيهم في ثلاثة مربعات النص المشار اليها سابقا يظهر وإذا كان واحد منهم متغير فلا يظهر

هذه الفكرة ام كيف ؟

قام بنشر

لا شكر على واجب اخي العزيز كريمو

 

انت طلبت عدم تكرار الثلاثة حقول معاً و لهذا فإنه بعد اضافة او تعديل اي من السجلات و كان هناك تكرار بالثلاثة حقول فإن الاجراء سيعمل و يعيدك الى السجل المكرر .. هذا ما فهمته 

 

فهل تقصد تكرار اي من الحقول و ليس مجتمعة مع بعضها البعض؟

قام بنشر

لا شكر على واجب اخي العزيز كريمو

 

انت طلبت عدم تكرار الثلاثة حقول معاً و لهذا فإنه بعد اضافة او تعديل اي من السجلات و كان هناك تكرار بالثلاثة حقول فإن الاجراء سيعمل و يعيدك الى السجل المكرر .. هذا ما فهمته 

 

فهل تقصد تكرار اي من الحقول و ليس مجتمعة مع بعضها البعض؟

المقصود بعدم التكرار الا في الإسم واللقب وفي رقم القطعة 

اما إسم الأب يكون تنبيه بأن هذا الإسم هذا موجود " فهل تريد إضافته ام لا" مثلا 

قام بنشر (معدل)

لسلام عليكم أخواني

ممكن مساعدة بخصوص عدم التكرار في المربعات النص التالية

الإسم واللقب 

إسم الأب

رقم القطعة

وإذا كان غير مكرر اي إسم أخر نعمل له قبول وإذا كان مكرر يرجعني الى السجل الذي به التكرار

وشكرا

 

 

 

 

 

 

لمقصود بعدم التكرار الا في الإسم واللقب وفي رقم القطعة 

اما إسم الأب يكون تنبيه بأن هذا الإسم هذا موجود " فهل تريد إضافته ام لا" مثلا 

 

 

 

 

الا  .....  تعطي معنى مغاير لما ذكرته في بداية مشاركتك .... لو تتكرم و تشرح بوضع بيانات هنا كمثال لما تريده بالضبط

 

مع الشكر

تم تعديل بواسطه yousef
قام بنشر

أسف أستاذ ربما أثقلت عليكم او ربما معلومات الطلب تلخبط شوية

المطلوب هو حسب الصورة

 

post-104024-0-38285800-1426798728_thumb.

 

وشكرا لكم جميعا على مد يد العون

 

قام بنشر (معدل)

ابداً اخي العزيز كريمو .. شرف لي خدمة اخواني 

 

 

وضحت الصورة و بناءً عليها فإن التصميم به خطأ :: فلا يوجد رقم معرف فريد ( مفتاح رئيسي ) للشخص و مقارنة التكرار بالاسم و اللقب غير صحيحة فقد يكون هناك شخص اسمه يوسف احمد و تم تسجيله بالخطأ في المرة الثانية يوسف أحمد .. لاحظ ان الهمزة ستتسبب في خطأ و لن يلتفت الكود للتكرار .. و الحل هو في عمل معرف كالسجل المدني او الرقم القومي مثلا ليميز الاشخاص و يتم استخدامه لمقارنة التكرار.

 

ايضاً هناك استفسار بخصوص الاشخاص و القطع التي يحصلون عليها .. في الصورة تقول بأنه اذا تكرر الشخص في محيط آخر فمعناه انه حصل على قطعتين و تريد التنبيه ... السؤال هنا هو : هل يسمح للشخص ان يحصل على قطعة اخرى بنفس المحيط ؟ اذا لم يكن كذلك فإني ارى بأن البحث عن التكرار برقم الشخص فقط سيكون كافي لأنه لن يسجل مرتين.

 

الرجاء التكرم بالإفادة و التعديل و سنكمل معك بإذن الله

 

بالتوفيق

تم تعديل بواسطه yousef
قام بنشر

مشكور أستاذ على النصيحة

ولكن للأسف لايوجد لاسجل مدني ولا رقم قومي

صحيح ربما تكون فيه تشابه في العديد من الأسماء والألقاب بواسطة همزة او غيرها

وهذا منطقيا لأن اي مبرمج لما يبرمج شيء يحوزه من شتى النواحي

ولكن :

خلينا في مثالنا هذا ايمكن العمل وفقا للصورة اعلاه ؟ ام لا

ومن بعد نعمل إستعلام  به إكتشاف كل الأسماء المتقاربة والمتشابه عند الحقل nom

In (SELECT [nom] FROM [tblInfo] As Tmp GROUP BY [nom] HAVING Count(*)>1 )
قام بنشر (معدل)

حتى و ان لم يكن هناك رقم هوية فإنه من الضروري وضع رقم معرف لكي تتعامل مع البيانات بدقة 

 

مرفق تعديل على الملف  و ستجد نموذج للطلبات به الشرط الاول فقط و هو تفادي تكرار الاسم ( اقصد رقم الشخص ) و رقم القطعة و رقم المحيط و العودة بالنموذج الى السجل المكرر

 

الطلب الآخر لم يتم بعد .. في انتظار هل هو المطلوب .

 

 

بالتوفيق

المحيطات الفلاحية.rar

تم تعديل بواسطه yousef
قام بنشر (معدل)

اخي العزيز يوسف السلام عليكم ورحمة الله تعالى وبركاته

وجمعة مباركة عليك وعلينا وعلى كافة أمة الحبيب المصطفى

احيي فيك الروح الأخوية فشكرا لك على كل المجهودات وإتاحة فرصة من وقتك الثمين لمساعدتنا

فيما يخص الطلب :

النموذج هو عبارة على إدخال سجلات يعني لما نكون ندخل سجلات طلبات من قطع أرضية خاصة بالفلاحة والأسماء بكثرة وساعات تكون متكررة هذا هو الهدف المطلوب لتفادي ذالك

والتكرار  يكون في إسم ولقب الشخص

وساعات تكون نفس الأسماء والألقاب هنا نذهب للتفرقة في إسم الأب أو تاريخ مكان الميلاد 

مثلا : صدوقي الطاهر بن علي المولود في 1982/02/01

                            صدوقي الطاهر بن علي المولود في : 1986/07/08 هذا ليس تكرار

يكون MsgBox يعلمني بان هذا الشخص سجل سابقا وفي السجل رقم ..... هل تريد إضافته ام عدم إضافته

إذا تيقنت بأنه نفس الشخص اختار عدم الإضافة وإذا كان العكس فأختار إضافة

واما بالنسبة لتعديلك مؤخرا فإنك قيدت الإسم الكامل برقم الشخص وهذه مشكلة

أما بالنسبة للطلب الثاني فهو مطلوب  

آمل اني قد وفقت في توضيح الغموض الحاصل

خلاصة : كل شخص يستفيد برقم قطعة واحدة من ضمن مجموعة المحيطات

اي لايمكن الإستفادة باكثر من رقم قطعة ارضية

تم تعديل بواسطه كريمو2
قام بنشر

و عليكم السلام و رحمة الله و بركاته

 

بارك الله فيك اخي العزيز كريمو

 

اذاً المطلوب هو عدم تكرار تسجيل الشخص لاكثر من مرة في كل الاحوال  ... و طالما انه لا يوجد رقم هوية اذاً سنستخدم بياناته كاملة في المقارنة ( الاسم و اللقب و اسم الاب و تاريخ الميلاد و مكان الميلاد ) 

 

ما رأيك؟

قام بنشر (معدل)

تفضل اخي العزيز كريمو

لاحظ بأنه تم عمل اجراء اسمه ( dup ) يتم استدعاؤه في حدث قبل التحديث لمربعات النصوص الخاصة بالاسم و اللقب و اسم الاب و تاريخ الميلاد و مكان الميلاد ... وعند تسجيل شخص جديد او تحديث شخص سابق و حدث تكرار سيتم المطلوب ان شاء الله

بالتوفيق

المحيطات الفلاحية.rar

تم تعديل بواسطه yousef
قام بنشر (معدل)

شكرا لك أخي

يبدو ان الحدث به خلل

عند اضافة سجل به شخص جدبد يظهر هذا الميساج كما في الصورة

post-104024-0-53832800-1426857139_thumb. 

تم تعديل بواسطه كريمو2
قام بنشر (معدل)

السلام عليكم

طبعا مشاركة مع الأستاذ الكبير والخبير يوسف احمد لا بد ان تكون على نفس مقامه ومستواه

هنا أستاذ يوسف لو ترك حقل التاريخ فارغ قد يحدث خطأ فيحتاج عمل إضافي

الطرق كثيرة ولكن بفكرة خطرت على بالي ونفذتها. يعيبها انها قد لا تقبل عند الحدث قبل التحديث ولكن اذا كان الهدف تنبيه فهي لذلك تماما وبكل يسر وسهولة

 

الفكرة : - حدد أي عنصر او مجموعة عناصر من النموذج واعطهم خاصية علامة او tag  واحده للعناصر المحددة وهنا اسمها a 

          - الكود سيمر على كل العناصر التي لها خاصية tag = a ثم يضع المؤشر بها ثم يفلتر على أساس العنصر المحدد وباستخدام الامر العجيب filterbyselection   فهو يفلتر وحسب تنسيق القيمة وبدون حاجة لوضع تنسيقات القيم حسب نوع بيانات العنصر

 

الكود :

Private Sub أمر13_Click()
''رمهان
''اوفيسنا
For Each c In Me.Controls
If c.Tag = "a" Then c.SetFocus: DoCmd.RunCommand acCmdFilterBySelection
Next c
If Me.Recordset.RecordCount > 1 Then MsgBox ("بيانات مكررة")
End Sub

حبينا نشغل البطيخة أستاذ يوسف شويتين !!!

تحياتي

تم تعديل بواسطه رمهان
قام بنشر

شكرا لك اخي رمهان

ياحبذا لو عدلت على النموذج وارفقته لكي نرى الفكرة

صراحة لم افهم اين اوضبها

مع تحياتي لكم

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information