عبد اللطيف سلوم قام بنشر فبراير 7, 2019 قام بنشر فبراير 7, 2019 السلام عليكم احيانا نخطئ ونقوم بادخال الاسم اكثر من مرة وهنا يحدث ارباك حيث في حالة سندات القبض والدفع سيحدث غلط بالتأكيد لأنك تقبض من شخص مكرر مرتين المهم نحتاج طريقة لمنع التكرار بواسطة الاكواد وهذا مربط الفرس اتمنى لكم الفائدة مرفق قاعدة بيانات صغيرة عليها مثال لمنع التكرار لكي تعم الفائدة وخاصة للاخوة المبتدئين شرح الطريقة : نعمل نموذج يوجد به الاسم فقط ونجعله ورقة بيانات ونضع في تذييله =count(*) ثم ندرج هذا النموذج داخل النموذج الرئيسي كنموذج فرعي حيث وظيفته يعد لي الاسماء كم مرة تكرر وهنا اذا كررنا الاسم اكثر من مرة فان الناتج سيكو ن اكبر من صفر وقتها نستطيع ان نضع في النموذج الرئيسي قبل التحديث الكود الذي ستجدونه داخل البرنامج لكي نمنع التكرار ونمنع الاضافة التكرار ممنوع.accdb
jjafferr قام بنشر فبراير 7, 2019 قام بنشر فبراير 7, 2019 وعليكم السلام اخي عبداللطيف 🙂 شكرا لك على هذه البرامج التشجيعية 🙂 عندي مداخله لوسمحت لي 🙂 وبإستعمال طريقة Dcount ، ولكن بشكل يختلف: لسنا بحاجة الى نموذج فرعي ، ولا الى الحقل الذي يأخذ قيمة النموذج الفرعي ، كل الذي نحتاجه هو: Private Sub الاسم_BeforeUpdate(Cancel As Integer) If DCount("*", "العميل", "[الاسم]='" & Me.الاسم & "'") > 0 Then MsgBox "هذا الاسم موجود بالفعل", vbCritical, "التكرار ممنوع" Me.Undo Cancel = True End If End Sub . ولكن ، بعض الاوقات لما المستخدم يلاقي ان الاسم تم ادخاله مسبقا ، فإنه يريد الذهاب الى ذلك الاسم للتأكد من عدم تشابه الاسماء (وهذا ما حصل مع بعض مستخدمي برامجي 🙂 ) ، لذلك ، اليك هذه الطريقة: Private Sub الاسم_BeforeUpdate(Cancel As Integer) Dim ID As Integer Dim Msg, Style, Title, Response ID = Nz(DLookup("[المعرف]", "العميل", "[الاسم]='" & Me.الاسم & "'"), 0) If ID <> 0 Then Me.Undo Cancel = True Msg = "هذا الاسم موجود بالفعل" & vbCrLf & _ "المعرف رقم " & ID & vbCrLf & vbCrLf & _ "Yes : نعم اذهب الى ذلك السجل" & vbCrLf & _ "No : فقط الغي هذا السجل" Style = vbYesNo + vbCritical + vbDefaultButton2 Title = "التكرار ممنوع" Response = MsgBox(Msg, Style, Title) If Response = vbYes Then DoCmd.FindRecord ID, , , , , acAll, True End If End If End Sub . والنتيجة: جعفر 1006.التكرار ممنوع.accdb.zip 1 1
عبد اللطيف سلوم قام بنشر فبراير 7, 2019 الكاتب قام بنشر فبراير 7, 2019 53 دقائق مضت, jjafferr said: وعليكم السلام اخي عبداللطيف 🙂 شكرا لك على هذه البرامج التشجيعية 🙂 عندي مداخله لوسمحت لي 🙂 وبإستعمال طريقة Dcount ، ولكن بشكل يختلف: لسنا بحاجة الى نموذج فرعي ، ولا الى الحقل الذي يأخذ قيمة النموذج الفرعي ، كل الذي نحتاجه هو: Private Sub الاسم_BeforeUpdate(Cancel As Integer) If DCount("*", "العميل", "[الاسم]='" & Me.الاسم & "'") > 0 Then MsgBox "هذا الاسم موجود بالفعل", vbCritical, "التكرار ممنوع" Me.Undo Cancel = True End If End Sub . ولكن ، بعض الاوقات لما المستخدم يلاقي ان الاسم تم ادخاله مسبقا ، فإنه يريد الذهاب الى ذلك الاسم للتأكد من عدم تشابه الاسماء (وهذا ما حصل مع بعض مستخدمي برامجي 🙂 ) ، لذلك ، اليك هذه الطريقة: Private Sub الاسم_BeforeUpdate(Cancel As Integer) Dim ID As Integer Dim Msg, Style, Title, Response ID = Nz(DLookup("[المعرف]", "العميل", "[الاسم]='" & Me.الاسم & "'"), 0) If ID <> 0 Then Me.Undo Cancel = True Msg = "هذا الاسم موجود بالفعل" & vbCrLf & _ "المعرف رقم " & ID & vbCrLf & vbCrLf & _ "Yes : نعم اذهب الى ذلك السجل" & vbCrLf & _ "No : فقط الغي هذا السجل" Style = vbYesNo + vbCritical + vbDefaultButton2 Title = "التكرار ممنوع" Response = MsgBox(Msg, Style, Title) If Response = vbYes Then DoCmd.FindRecord ID, , , , , acAll, True End If End If End Sub . والنتيجة: جعفر 1006.التكرار ممنوع.accdb.zip احسنت اخي جعفر ونفعنا الله من علمك
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.