الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

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

بدأه Abo_abdlh في 1 مارس 2014 · 5 رد · 621 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

 

الحمد لله والصلاة والسلام على سيدنا رسول الله صلى الله عليه وسلم

 

الاخوة الافاضل

 

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

 

عندي مشكلة واريد عدم تكرار الوردية في نفس التاريخ  مثال

 

1/3/2014 نهار

1/3/2014 ليل

1/3/2014 نهار ( تظهر رسالة خطأ)

 

استخدمت الكود التالي ولم يعمل معي جيداً

 

اقتباس

    If DCount("[invoiceDate]", "Productions", "[invoiceDate]=InvoiceDate  and [WorkTime]=WorkTime") > 1 Then
       MsgBox "التاريخ والوردية مكررين", vbInformation, "mado"
       DoCmd.GoToControl "InvoiceDate"
       DoCmd.CancelEvent
       Me.Undo
    End If
 

 

 

برجاء مراجة الكود والمساعدة في حل المشكلة

 

ولكم جزيل الشكر

 

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

db3.rar

قولوا لا إله إلا الله تفلحوا

post-15367-087183200%201340344597.gif

#2

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

 

 

 

أخي الكريم

 

بص يا سيدي:

DCount-DLookup_DSum_DMax وماشبه ؛ لازم تفرق له في نوع المعيار المرسل مع الاستعلام

لان الدوال السابقة بتفرق في أنواع المعايير ؛ يعني التاريخ ليه طريقة معينة في الارسال والنص ليه طريقة معينة في الارسال و الرقم ليه طريقة معينة في الارسال

التاريخ لازم يكون معاه علامة التنصيص #  1-1-2014 #

والنص لازم يكون معاه علامة التنصيص "AAAAA"

اما الرقم فبيرسل من دون علامات تنصيص 000000

 

ده كمان بالاضافة أنك وانت بتكتب المعيار علشان تبعته مع الدالة لازم تفرق بين جملة SQL  وبين المعيار اللي بيتكبه داخل جملة SQL

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

لذلك في الكتابة بنلجي ديما لاستخدام علامة & إلي من خلالها بنقدر ننهي جملة SQL  ونكتب معيار مع الجملة نفسها .....

 

"مش عارف عارف أوصلك المعلومة ولا :D "

 

علي العموم أتفضل الكود بعد التعديل وشوف أنت عايز توظفه فين ؛؛؛؛

 

 

الكود بعد التعديل

DCount("[InvoiceDate]", "Productions", "[InvoiceDate]=#" & [InvoiceDate] & "# And [WorkTime]=" & [WorkTime])

قارن بينه وبين الكود اللي انت كاتبه حتعرف الفرق

 

 

أوعي تنسانا من دعائك

 

ربنا معاك

#3

جزاك الله خيرا اخي الكريم على الشرح الممتع

 

جربت الكود ولم يعمل معي جيدا للاسف

 

فارجو منك تطبيقه على المثال المرفق ولك جزيل الشكر

 

//attachment/150504

 

تحياتي

قولوا لا إله إلا الله تفلحوا

post-15367-087183200%201340344597.gif

#4

أخي الكريم

 

الموضوع ابسط مما تتخيل ... بس هو محتاج شوية تركيز :D

 

في الكود اللي مكتوب ؛ أنت كتبت في حالة انها اكبر من واحد ؛ ودي مشكلة ؛ عارف ليه ؟؟ علشان القيمة وانت بتكتب بتكون لسه متسجلتش في الجدول ؛ ومعني كده انه حيظهر ليك الخطأ لما تكون القيمة اكبر من واحد ؛ يعني الرسالة حتظهر لما تكون القيمة 2 فأكثر

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

>=

طيب يبقي شكل الكود ايه في الاخر

DCount("[InvoiceDate]", "Productions", "[InvoiceDate]=#" & [InvoiceDate] & "# And [WorkTime]=" & [WorkTime]) >= 1

في نقطة كمان ؛ انت مفعل الحدث عن النقر علي قائمة الاختيار ؛ وده كلام مش سليم ؛ ضيف الكود في حدث بعد التحديث علي مستوي الحقل الاول والحقل التاني ..... :)

 

جربها باديك وحتلاقيها تمام :)

 

 

أوعي تنسانا من دعائك

#5

الف الف مليون شكر لك اخي الكريم وجزاك الله خيرا

 

طيب الله يرضى عليك تحملني قليلا

 

الكود يعمل عند حدث بعد التحديث لمربع النص InvoiceDate ولكنه لا يعمل عند مربع تحرير وسرد WorkTime

 

ولا اعلم اين المشكلة بالضبط

 

ولك جزيل الشكر مقدما

 

تجياتي

قولوا لا إله إلا الله تفلحوا

post-15367-087183200%201340344597.gif

مواضيع مشابهة