اذهب الي المحتوي
أوفيسنا

منع التكرار برمجياً


mr steev

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

السلام عليكم 

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

حقل A .................... عدد صحيح .................... مفهرس التكرار مقبول

حقل B .................... نعم/لا       .................... مفهرس التكرار مقبول

 

المطلوب :

منع تكرار .................... [قيمة (نعم) للحقل B مع قيمة العدد في الحقل A]

 

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

 

No Duplicates.rar

رابط هذا التعليق
شارك

الحل يتم بأكثر من طريقة

اسهل وأقوى طريقة هو ان تجعل الحقلين مفتاحين

جرب ووافنا بالنتيجة

تنبيه : لاختيار اكثر من مفتاح  : اضغط زر كنترول من لوحة المفاتيح  ثم حدد السجلات المطلوبة ثم انقر بالزر الايمن واختر المفتاح

 

No Duplicates.rar

  • Like 1
رابط هذا التعليق
شارك

أخي الكريم 

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

وذلك لان حقل  A سيحوي نفس قيمة العدد بأكثر من سجلين وهذا لا يصلح مع خانة الاختيار والتي هي فقط خيارين 1 و 0

 

والمطلوب هو :

منع تكرار .................... [قيمة (نعم)أي 1 فقط للحقل B مع قيمة العدد في الحقل A بأكثر من سجل واحد

تم تعديل بواسطه mr steev
رابط هذا التعليق
شارك

تفضل 

آمل ان يحقق مطلبك

Private Sub A_AfterUpdate()
If (DLookup("B", "tbl1", "B=form!B")) Then
MsgBox "هذا السجل مكرر "
Undo
End If
End Sub


Private Sub B_AfterUpdate()
If Not IsNull(DLookup("A", "tbl1", "A=form!A")) Then
MsgBox "هذا السجل مكرر "
Undo
End If
End Sub

 

NoDuplicates.rar

  • Like 2
رابط هذا التعليق
شارك

جزاك االله خيرا وعذراً لك أخي الكريم

لكن ليس هو المطلوب أيضا وذلك لأنني لم أستطيع ايصال الصيغة البرمجية للمطلوب

 

سأحاول مرة أخرى أن أكتب لك الصياغة البرمجية للكود المطلوب

 

منع التكرار

عندما يكون (مجموع عدد السجلات التي تحوي قيمة "نعم" في الحقل B  مع القيمة المكررة في الحقل A) أكبر من 1

يعني لا يمكن تكرار السجل إذا كان هناك سجل يحوي قيمة نعم للحقل B لنفس الرقم في الحقل A (في نفس السجل)

 

واعذرني اذا لم استطع ايصال الفكرة مرة اخرى

 

 

ولكن يمكنك الاستعانة بالمرفق الأول لوضوح الفكرة هناك

تم تعديل بواسطه mr steev
رابط هذا التعليق
شارك

اخي مستر ستيف وقبل ان تذهب

جرب ضع علامة صح في اول سجل ! وعند ظهور الرسالة اضغط سكيب esc مرتين ! ماذا تلاحظ : قبل الصح وهنا تكررت البيانات ! 

ساترك لك محاولة الحل ! والا عد وسنعود !

 

عزيزي اباخليل : هل تعلم انه يوجد بما تفضلت به في :DLookup("B", "tbl1", "B=form!B"))  تحفة كما تسميها ! وهي ليست جديدة بالنسبة لي ولكن نبهتني لشي مهم بل تحفة وهي بمثابة معلومة جديدة لي . هي كالتالي :

انه في وضع كلمة form او بدونها فقط اسم العنصر على النموذج داخل الدوال التجميعية وفي جزء الشرط لم يعد هناك الحاجة للتنسيق الصريح للنص بوضع العلامة '  وللتواريخ بوضع #  . فان الاكسس يميز ذلك ضمنيا .

 

تحياتي للجميع

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

أعطاك الله عافية لا سقم بعدها سيد رمهان 

 

لقد قمت لك بتعطيل مفتاح سكيب esc

 

فخذ مني هذا الحل وأعطيني فجوة أخرى

 

وهذا من فضل ربي

 

جزاك الله خيراً

No Duplicates OK.rar

تم تعديل بواسطه mr steev
رابط هذا التعليق
شارك

اخي مستر ستيف

اليك هذا السطر من الكود وامسح جميع الاكواد الاخرى

Private Sub Form_BeforeUpdate(Cancel As Integer)
If DCount("*", "tbl1", "[B]=1 and [A]= form![A]") = 1 Then Cancel = B: MsgBox ("مكرر"): Undo
End Sub

تحياتي

  • Like 2
رابط هذا التعليق
شارك

جزاك الله خير

 

ولكن الاصح لي أن يكون المنع فوري عند اختيار الصح او عند تحديد الرقم

وليس بعد القيام بالاختيار 

 

فهل لديك طريقة مختصرة لذلك

تم تعديل بواسطه mr steev
رابط هذا التعليق
شارك

انا اعطيتك الاصح ! خاصة ولو كان هناك حقول اكثر ! فالبرنامج ينظر على مستوى النموذج كاملا ! وأين المشكلة هنا اخي مستر ستيف !

تريدها على مستوى العنصرين وحسب وجهة نظرك ! لبيت طلبك والله المستعان !

 

تحياتي

رابط هذا التعليق
شارك

  • 2 years later...

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