لا اعلم ان كانت هناك حلول حسب طريقتك
ولكني وحسب رأيي ارى تحويل الفرق الى دقائق فقط والتعامل معها كأرقام لارجاعها مرة اخرى منفصلة
وللتحويل تستخدم هذه الصيغة داخل الاستعلام حتى يصبح حقل عدد ساعات التأخر منضما
Expr2: IIf(DateDiff("n";[timestart];[التأخر])<=0;0;DateDiff("n";[timestart];[التأخر]))
واستخدام iif الشرطية حتى يتم تخطي الحضور المبكر
ثم تحول مجموع الارقام الى ايام وساعات ودقائق مع ملاحظة وجوب استبعاد الدالات المستخدمة
انت جئت بغالب الاجابة
بالضبط كما ذكرت فعند حدث الطباعة للتقرير تنقل هذا الحدث الى حقل في جدول متمثلا في اسم التقرير وتاريخ وساعة طباعته واسم المستخدم
ان لم تتمكن من التطبيق ارفق مثالا وافيا لمساعدتك
يا هلا باخوي ابو عيسى
للعلم يمكن تطبيقها على الشهر الهجري
وطريقة عمل هذه الدالة او الدوال انها تستخرج اليوم الذي يسبق اول يوم من الشهر القادم
بمعنى انها تستخرج آخر يوم من هذا الشهر
بتوفيق الله وفضله هذه وحدة نمطية صغيرة تقوم بالطلب
Public Function MonthDays()
Dim myMonth As Long
myMonth = Month(Date)
MonthDays = Day(DateSerial(Year(Date), myMonth + 1, 1) - 1)
End Function
عدد ايام الشهر الحالي.rar
combo4 هذا الاسم لا وجود له والصحيح combo6 راجع مثالك الاول
If Combo4.Value = "" or Text2.Value = "" Then
هذه صحيحة ويمكن ان تكون هكذا
if IsNull([Combo]) Or IsNull >>>
ولكنها لن تعمل معك هنا والسبب ان الحقول غير منضمة الى جدول لذا فهي لا تحمل قيمة
ولضبط هذه العملية يجب ان تضع في القيمة الافتراضية قيمة معينة كــ "" أو صفر .... وهكذا
نلتمس لاخونا الشمال العذر فعسى المانع يكون خيرا
وبالنسبة لمثالك فاعتقد ان طريقة التطبيق لا يمكن تحققها
فأنت طلبت منع تكرار المعرف
وايضا منع تكرر ارقام متشابهه للمعرف نفسه فقط
وعند التطبيق على الواقع حسب مثالك فإنه ضمنا لا يمكن تكرار ارقام للمعرف بل لا يمكن منحه سوى رقم واحد لانه لن يملك الا سجلا واحدا في هذا الجدول
ومع هذا وضعت لك الاكواد الخاصة بمثل هذه المسألة في مثالك المرفق
the form.rar
العنوان مخالف وطبعا سيتم غلق الموضوع
يمكنك فتح مشاركة جديدة وطرح مشكلة واحدة معينة ويتم ايضاح هذه المشكلة في العنوان
فإذا حصلت على اجابة شافية يمكنك فتح مشاركة بمسألة اخرى وهكذا ...
هذه الطريقة اسرع في تلبية الطلب وانفع في تخصيص المسائل
وفقك الله لكل خير ،،،
If Combo4.Text = "" And Text2.Text = "" Then
اولا وجود اللاحقة Text تستلزم وجود التركيز على الحقل عند تنفيذ الامر فإما ان تحذف وإما ان تستبدل بالقيمة Value
الثاني انك استخدت And وهنا لن يعمل الكود حتى يكون الحقلان كلاهما فارغان
والاولى استخدام Or لاننا لن نسمح لاي واحد منهما ان يكون فارغا
اذا كانت البيانات وقتية فيمكن استخدام العبارات البرمجية لنقل القيمة من النموذج الى التقرير
اما ان كانت البيانات ثابتة ومحفوظة للرجوع اليها فيجب رصدها في الجدول
وبالنسبة لخانات الاختيار فيمكن التعبير عنها في الجدول بأرقام 1 ، 2 ، 3 والاسم التوضيحي يظهر في التقرير كترجمة للرقم عبر مربع تحرير وسرد
ارفق مثالك على اصدار 2003 مكتملا يشتمل على الجدول والتقرير مع النموذج لتطبيق الطريقة التي تريدها