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

منع التكرار بفحص ثلاث حقول من جدول


ابورغد

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

الأخوة الأعزاء

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

الكود المرفق يقوم باختبار الموجود في الجدول عن طريق الداله (DCount)

وقد وضع على شكل ثلاثه احتمالات

المطلوب جمعها في كود يقوم باختبار الشروط الثلاثة مره واحده اي في كود واحد فقط

school2 = school=المدسة

day_1= date_d= يوم الزيارة

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

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

date_m+date_d+school <> school2+day_2+day_2

تحياتي وتقديري للجميع

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

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

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

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

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

السلام عليكم

أخي ابورغد :fff: ، بارك الله فيك

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

استخدمت me في هذه الحالة والتي تكافىء في مثالك (forms!visit) نموذج الزيارة.

Nz(Dcount("date_m","Tvisit","not (school = " & me.school2  & " and date_d = " & me.day_1 & " and date_m = " & me.day_2 & ")" ),0)

الاقتران nz أضيف في البداية حتي يعالج عدم وجود نتائج ويرجع في هذه الحالة صفر.

مع الاحترام

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

اشكرك استاذي خضر

واود بعض التوضيح من فضلك

Nz("date_m","Tvisit","not

لماذا كتبت date_m

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

بأي اسم آخر في الصف مثل

date_d

or

school

الطلب الثاني هل أضع هذا الكود داخل جمله شرط

if (code) then

save

else

msgbox"عيك تسجيل الزيارة من جديد"

end if

اكرر شكري وتقديري وتقبل تحياتي

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

استاذي القدير

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

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

وتقبل تحياتي

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

السلام عليكم

اخي ابورغد :fff: ، بارك الله فيك

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

مع الاحترام

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

السلام عليكم

أخي أبو رغد :fff: ، بارك الله فيك

قمت بوضع الشرط المطلوب في visit3 وبإمكانك وضعه في أي نموذج بنفس الطريقة.

مع الاحترام

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

استاذ خضر

لقد جربت ما قمت به مشكوراً لكن للأسف لم ينجح

وقد اكون انا السبب وذلك لعدم شرحي الوافي لما اريد

فالنموذج الذي اريد أن يكون الكود به هو (visit) وذلك لانه النموذج الرئيسي

اما النموذج (visit3) انما هو نموذج يقوم المستخدم بالدخول عليه عن طريق النموذج الرئيسي وذلك بهدف تحرير الزيارات فقط وليس الإدخال او تسجيل الجديد

استاذي

اتمنى أللا أكون قد اثقلت عليك بطلبي

واتمنى أن تساعدني مره ثانية

فعدل ما شئت من أكواد في النموذج أو في الجداول فالهدف هو عدم تكرار تسجيل مدرسة في نفس اليوم ونفس الشهر

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

لكن قد اظطر بعض الأحيان إلى تسجيل زيارة متكررة ، فيكون ذلك صعباً

فلو تتبعت الكود المكتوب في حدث زر (تسجيل) لتضحت الصورة

آمل أن يتسع صدرك لمطالبي وتقبل تحياتي

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

السلام عليكم

أخي ابا رغد :fff: ، بارك الله فيك

المطلوب جاهز ، مع ملاحظة ما يلي :

1. أضفت على الشرط أيضا عامل السنة فلو كانت الزيارة في نفس اليوم والشهر والمدرسة ولكن في سنة أخرى فسيسمح بتسجيلها.

2. أنت لم تقم بضبط موضوع التسجيل بشكل دقيق 100% ، وأنا لم أتعرض لهذا الموضوع في برنامجك لأنك لم تطلب مني.

3. إذا احتجت لأية مساعدة أخرى فأنا دائما جاهز (إن شاء الله).

مع الاحترام

threerec.rar

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

استاذ خضر

لقد قمت بتجربة الكود وكان يعمل بشكل صحيح

لكن لدي بعض الملاحظات:

1- تم اظافة سجل جديد برقم اصفار واسم (لم يحدد)في جدول الموظفين

2- عند حذف جميع الزيارات في جدول الزيارات (TVISIT) لايمكن تسجيل زيارة جديدة وذلك بعد ما قمت بوضع الشرط

If t <>0 Then

وقد قمت بوضع سجل في الجدول بدون تواريخ في جدول الزيارات واصبح يحفظ

لا أعلم هل يوجد طريقة أفضل من تلك

وأخيراً اكرر شكري وتقديري

وتقبل تحياتي

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

السلام عليك

أخي أبا رغد :fff: ، بارك الله فيك

دائما يوجد طرق أحسن لعمل أي شيء ، إذا كنت تود مني أن أساعدك في اي شيء فأن جاهز دائما ، ولكني أرجو أن تكون واضحا ودقيقا في تحديد المتطلبات.

وإذا كان هناك أي استفسار في الكود باقي لم يتضح فأستطيع أن أشرحه وكانت أسئلتك حت الان كما يلي :

تم اظافة سجل جديد برقم اصفار واسم (لم يحدد)في جدول الموظفين

الجواب ، نعم ولأنك أخترات القيمة الافتراضية للموظف الذي سجل الزيارة من جدول الموظفين ، فلا يجوز تركه فارغا ، ويمكن تغيير اسلوب التعامل مع ذلك إن أحببت.

عند حذف جميع الزيارات في جدول الزيارات (TVISIT) لايمكن تسجيل زيارة جديدة وذلك بعد ما قمت بوضع الشرط

If t <>0 Then

أخي ، قيمة T تكون صفر في حالتين عندما لا يكون هناك زيارات في ذلك اليوم والشهر والسنة ولنفس المدرسة أو عندما لا يكون هناك سجلات زيارة نهائيا في جدول الزيارات.

لماذا كتبت date_m

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

بأي اسم آخر في الصف مثل

الجواب نعم وعندما يكون التركيز على عدد السجلات يمكن استخدام أي حقل.

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

مع الاحترام

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

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

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



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

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

Important Information