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

منع تكرار الإدخالات


ابورغد

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

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

لقد تتبعت المنتدى وبحثت عن عدم تكرار السجلات في الجدول ووجدت المطلوب وذلك بتحقق شرط واحد فقط كما في الكود :

Dim Result As Long

Result = DCount("[FldName]", "YourTbl", "[FldName] = '555'")

If Result = 10 Then

MsgBox ("Your message here")

End If

لكن ما أريده هو أن أجعل الشرط بأكثر من حقل ولكن بدون تكرار الجملة الشرطيه، وانما بتعدد الحقول

أرجو أن اكون قد أوصلت الفكره بشكل واضح

ولكم تحياتي وتقديري

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

أخي العزيز

أولا : لو كنت أوضحت بنية الجدول عندك كان أحسن .

أولا : اذا كنت تريد منع التكرار نهائيا للسجل , فاجعله مفتاح اساسي

ثانيا : اذا كان يوجد للحقل مفتاح اساسي و تريد حقل آخر أن لا يتكرر نهائيا, فاجعل خاصيته

indexed غير مكرر ,

ثالثا : اذا كان يوجد للحقل مفتاح اساسي و تريد حقل آخر أن لا يتكرر في نفس عائديته للحقل الأساسي الأول , مثلا لديك جدول فواتير , فيه الحقلين رقم الفاتوره , رقم الصنف

اذا كنت تريد رقم الصنف أن لا يتكرر مرتين في نفس رقم الفاتوره , فاجعل كلا من رقم الفاتوره و رقم الصنف مفتاح اساسي

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

Function Repeated(FldName As Long) As Boolean

If (DCount("FldName", "YourTbl", "[FldName]=" & CStr(FldName))) > 1 Then
Repeated= True
Else
Repeated= False
End If
        End Function

والآن ارجع الى النموذج ,و ضع فيه عنصر تشييك , و ليكن اسمه NumOfCount

و اجعل مصدر بياناته كما يلي :

(Repeated(fildnam

افتح النموذج أو الاستعلام , اذا وجدت أحد حقول الجدول فيه عنصرالتشييك صح , يعني أن هذا العنصر تكرر أكثر من مره

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

اشكرك اخي رضوان على تجاوبك معي

ما اعنيه هو أن لدي جدول خاص بزيارات مشرفين تربويين للمدارس والهدف هو عدم وجود زيارة لمشرفين في نفس اليوم الواحد وليس

الجدول اسمة Tvisit

الحقول

ID = رقم السجل المدني للمشرف

school=رقم المدرسة التي سوف تزار

day=يوم الزيارة

day_1 = تاريخ يوم الزيارة

day_2 = شهر الزيارة

day_3 = سنة الزيارة

visit_ID = الهدف من الزيارة

الحقول السته الأخيرة هي التي أرغب عند تكرارها في الجدول يعطيني رسالة تنيه

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

وقد ركبت الجملة الشرطية التي ذكرتها في بداية الموضوع وذلك بجعل كل حقل له جملة شرطية واحدة ، وانا ارغب بأن اجمع تلك الحقول في جملة واحدة فقط وليس بست جمل شرطية

أرجوا أن اكون قد أوضحت

وتقبل تحياتي

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

أولا :لماذا لا تجمع الحقول الأربعه الخاصه باليوم و التاريخ و السنه و الشهر في حقل واحد

و تسميه تاريخ الزياره , و يتم تنسقه تنسيق طويل : اسم اليوم - اليوم - شهر - سنه

ثانيا : لم توضح ماهي الطريقه التي تريد أن لا يتكرر بها تاريخ الزياره

هل تريد عدم تكرار الزياره مره ف ياليوم أو الاسبوع أو الشهر أو السنه

كيف تريد أن تبني الشرط الخاص بالتاريخ

بالنسبه للمدرسه لوحدها كما قلت لك يمكن أن تجعل رقم المشرف و رقم المدرسه مفتاح أساسي , لكن لا بد أن تعرف الشرط الخاص بالتاريخ أولا

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

اكرر شكري لك اخي رضوان

بالنسبة للزيارة الخاصة بالمدرسة فانا أرغب اللا تتكرر للمدرسة في نفس اليوم والشهر والسنة فيوم السبت مثلاً الموافق 1\1\1425 هناك زيارة للمدرسة رقم 500 للمشرف رقم 1 ويوم الأحد الموافق 2\1\1425 هناك زيارة للمشرف نفسة لكن في مدرسة رقم 501 وهكذا

لكن اذا قمت بتسجيل زيارة للمشرف رقم 2 في يوم 1\1\1425 للمدرسة رقم 500 هنا يتحقق الشرط الذي أريد

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

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

اما بالنسبة لعدم وضعي التاريخ بالتنسيق الطويل فهذا يسبب لي مشاكل في ادخال التاريخ لانه سوف يوزع البرنامج على الشبكة ويقوم كل مشرف بوضع خططة الخاصة بنفسة ، ولتفادي ذلك فقد جعلت التاريخ عبارة عن ثلاثة حقول في الجدول ويتم ادخالة عن طريف النموذج بواسطة قوائم تحرير وسرد

فالهدف هو عدم تكرار زيارة المدرسة الواحده في نفس اليوم والشهر والسنه واعطاء رسالة تنبيه بذلك ولعلي اوضح لك ذلك بالكود التالي

If DCount("school", "Tvisit", "school = forms!visit!visit1!school") > 1 Then

If DCount("day", "Tvisit", "day = forms!visit!visit1!day") > 1 Then

If DCount("visit_id", "Tvisit", "visit = forms!visit!visit1!visit_id") > 1 Then

If DCount("day_1", "Tvisit", "date_d = forms!visit!visit1!day_1") > 1 Then

If DCount("day_2", "Tvisit", "date_m = forms!visit!visit1!day_2") > 1 Then

If DCount("day_3", "Tvisit", "date_y = forms!visit!visit1!day_3") > 1 Then

If MsgBox(" هذه المدرسة قد سجل لها زيارة في نفس اليوم من قبل مشرف آخر ", vbMsgBoxRight + vbYesNo + vbDefaultButton2, "الاشراف التربوي ") = vbYes Then

DoCmd.GoToRecord , , acNewRec

Cancel = True

Else

If MsgBox("هل تريد عرض الزيارات المشابهة", vbMsgBoxRight + vbYesNo + vbDefaultButton2, "الاشراف التربوي") = vbYes Then

DoCmd.SetWarnings False

DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70

DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70

DoCmd.OpenForm "visit6"

(visit6)= نموذج مصدر بياناته عبارة عن استعلام ويقوم بعض الزيارات المتشابهه للزيارة المسجلة حالياً

Else

MsgBox "اذا عليك تسجيل الزيارة من جديد ", vbMsgBoxRight + vbOKOnly + vbDefaultButton2, "الاشراف التربوي "

DoCmd.SetWarnings False

DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70

DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70

Cancel = True

End If

End If

End If

End If

End If

End If

End If

End If

End Sub

ارجوا أن اكون قد اوضحت واتقدم لك بالشكر الزيل اخي رضوان

ولدي طلب آخر وهو عند فتح النموذج visit6

كيف يكون المعيار الخاص بذلك وخاصة أن النموذج كما هو موضح بالكود يحتوي على نوذجين

visit = النوذج الأصلي

visit1= النموذج الفرعي والذي من خلاله يتم تسجيل الزيارات

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

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



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

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

Important Information