الاصدقاء الاكارم تحية طيبة
جميعنا نستخدم دوال الاكسس مثل الدالة Dcount و الدالة Dmax و الدالة Dsum
وغالبا ما نعاني من كتابة الشروط التي سيتم تطبيق هذه الدالة عليها
مثلا لدينا جدول الموظفين (EmInfo) وهو يحوي الحقل (EmNumber) اذا اردنا حساب عدد السجلات التي تحتوي على رقم مدخل في حقل البحث (Nser1) من الجدول فاننا نكتب الدالة Dcount كما يلي
الدالة 1
dim Uvar as variant
Uvar = dcount("Emnumber","Eminfo","[EmNumber]=" & Me.Nser1)
msgbox Uvar
الامر بسيط هنا ( لاحظ ان الشرط هو قيمة رقمية )
واذا اردنا تطبيق نفس الدالة لكن هذه المرة الشرط سيكون قيمة نصية ( اسم )
الدالة 2
dim Uvar as variant
Uvar = dcount("Emnumber","Eminfo","[EmNumber]=" & "'" & Me.Nser1 & "'")
msgbox Uvar
ايضا الامر بسيط
واذا اردنا تطيبيق الدالة ولكن بشرط تاريخ معين
الدالة 3
dim Uvar as variant
Uvar = dcount("Emnumber","Eminfo","[EmNumber]=" & "#" & Me.Nser1 & "#")
msgbox Uvar
الامور الى الآن سهلة لكن ماذا اذا اردنا ان نضع اكثر من شرط
مثلا نريد حساب عدد ساعات العمل لموظف معين في تاريخ معين !!!!!!!!!!!!!
الامور ستصبح اصعب
الدالة 4
dim Uvar as variant
Uvar = Dsum("EmWorkHour","Eminfo","[EmNumber]=" & Me.Nser1 & " and [EmWorkDate]=" & "#" & Me.Nser2 & "#")
msgbox Uvar
والامور ستزداد سوءا اذا كان الشرط قيمة نصية + تاريخ معين
الدالة 5
dim Uvar as variant
Uvar = Dsum("EmWorkHour","Eminfo","[EmName]=" & "'" & Me.Nser1 & "'" & " and [EmWorkDate]=" & "#" & Me.Nser2 & "#")
msgbox Uvar
وغالبا ما نخطئ في كتابة الشرط لتظهر لنا رسالة خطأ
اثناء عملي على احد البرامج واجهتني هذه المشكلة و الحمدلله اكتشفت طريقة يمكن بها اختصار الشرط كما انه يمكن اهمال نوع القيمة للشرط ( رقمية - نصية - تاريخ )
Dim Uvar As Variant
Uvar=DSum("emworkhour", "eminfo", "[emname]=[nser3] and [emworkdate]=[nser4]"))
msgbox uvar
الكود السابق يعطي نفس نتيجة الدالة 5
اعتذر على الاطالة في الشرح لكن لابد منه لكي يتاح للمستخدم فهم الفرق
واي استفسار انا جاهز
اختصار الشروط في الدوال.rar