MO87 قام بنشر ديسمبر 24, 2022 قام بنشر ديسمبر 24, 2022 السلام عليكم لو سمحتم عندي مشكة في دالة DLOOKUP باكثر من شرط عند البحث اريد شرطين (UNIT = UNIT) و (ShiftType = ShiftType) لكي اجد قيمة ساعة البداية وساعة النهاية ثانيا اريد عند ادخال البيانات اذا كان الموظف في اجازة عند تسجيلة في فتره اجازته لا يسجل ويعطيني رسالة وشكرا لكم MO.rar
Eng.Qassim قام بنشر ديسمبر 24, 2022 قام بنشر ديسمبر 24, 2022 (معدل) وعليكم السلام .. بالنسبة لسؤالك الاول ..الدالة بتشتغل معاك كويس ومافيهاش مشكلة الشطر الثاني من السؤال ... يمكنك عمل مربع نص بأسم Ds ومربع نص ثاني باسم De ويمكنك ان تخفيهما في النموذج ..وتجعل مصد السجلات لهما هكذا Ds =DLast("[strDate]";"[TblLeaveRegistrationOrdinary]";"[Emp]='" & [Emp] & "'") De =DLast("[EndDate]";"[TblLeaveRegistrationOrdinary]";"[Emp]='" & [Emp] & "'") وفي حدث بعد التحديث للحقل DateShift في النموذج تضع الكود التالي Private Sub DateShift_AfterUpdate() If Me.DateShift >= Me.Ds And Me.DateShift <= Me.De Then MsgBox "الموظف في اجاؤة" DoCmd.CancelEvent Me.DateShift = "" End If End Sub تم تعديل ديسمبر 24, 2022 بواسطه Eng.Qassim 1
MO87 قام بنشر ديسمبر 24, 2022 الكاتب قام بنشر ديسمبر 24, 2022 39 دقائق مضت, Eng.Qassim said: وعليكم السلام .. بالنسبة لسؤالك الاول ..الدالة بتشتغل معاك كويس ومافيهاش مشكلة الشطر الثاني من السؤال ... يمكنك عمل مربع نص بأسم Ds ومربع نص ثاني باسم De ويمكنك ان تخفيهما في النموذج ..وتجعل مصد السجلات لهما هكذا Ds =DLast("[strDate]";"[TblLeaveRegistrationOrdinary]";"[Emp]='" & [Emp] & "'") De =DLast("[EndDate]";"[TblLeaveRegistrationOrdinary]";"[Emp]='" & [Emp] & "'") وفي حدث بعد التحديث للحقل DateShift في النموذج تضع الكود التالي Private Sub DateShift_AfterUpdate() If Me.DateShift >= Me.Ds And Me.DateShift <= Me.De Then MsgBox "الموظف في اجاؤة" DoCmd.CancelEvent Me.DateShift = "" End If End Sub @Eng.Qassimشكرا جدا لحضرتك علي الرد بالنسبه للدالة عند تسجيل كل المجموعات تعطي أرقام خطا اول التصميم كان المجموعات باللغه العربية قولت ممكن السبب منها وغيرتها للانجليزي وما زال الخطأ ممكن حضرتك لو تجرب كل المجموعات هتلاقي معظم اللي شفته بيبدأ من الساعه ٧ أو ٧.٣٠ لا يظهر ومعظم الأرقام خطا انا اسف جدا على الازعاج سامحني
أفضل إجابة Eng.Qassim قام بنشر ديسمبر 25, 2022 أفضل إجابة قام بنشر ديسمبر 25, 2022 (معدل) 15 ساعات مضت, MO87 said: لو تجرب كل المجموعات هتلاقي معظم اللي شفته بيبدأ من الساعه ٧ أو ٧.٣٠ لا يظهر ومعظم الأرقام خطا طيب جرب الان بالنسبة للخطأ الحاصل MO.rar تم تعديل ديسمبر 25, 2022 بواسطه Eng.Qassim 1
MO87 قام بنشر ديسمبر 25, 2022 الكاتب قام بنشر ديسمبر 25, 2022 3 ساعات مضت, Eng.Qassim said: طيب جرب الان بالنسبة للخطأ الحاصل MO.rar 51.79 kB · 4 downloads الف مليون شكرا لحضرتك @Eng.Qassim انا كنت حليت المشكلة بعمل نموذج فرعي ياخد القيمة منه مباشرة جزاك الله خير ده مشروع خيري وفي مشكلة ثانية سوف ارفقها فس سوال جديد والف شكرا لكرمك 1
MO87 قام بنشر ديسمبر 29, 2022 الكاتب قام بنشر ديسمبر 29, 2022 @Eng.Qassimاسف في 24/12/2022 at 23:14, Eng.Qassim said: وعليكم السلام .. بالنسبة لسؤالك الاول ..الدالة بتشتغل معاك كويس ومافيهاش مشكلة الشطر الثاني من السؤال ... يمكنك عمل مربع نص بأسم Ds ومربع نص ثاني باسم De ويمكنك ان تخفيهما في النموذج ..وتجعل مصد السجلات لهما هكذا Ds =DLast("[strDate]";"[TblLeaveRegistrationOrdinary]";"[Emp]='" & [Emp] & "'") De =DLast("[EndDate]";"[TblLeaveRegistrationOrdinary]";"[Emp]='" & [Emp] & "'") وفي حدث بعد التحديث للحقل DateShift في النموذج تضع الكود التالي Private Sub DateShift_AfterUpdate() If Me.DateShift >= Me.Ds And Me.DateShift <= Me.De Then MsgBox "الموظف في اجاؤة" DoCmd.CancelEvent Me.DateShift = "" End If End Sub بالنسبه لو الموظف متاح له أكثر من اجازة خلال العام
Eng.Qassim قام بنشر ديسمبر 29, 2022 قام بنشر ديسمبر 29, 2022 (معدل) 1 ساعه مضت, MO87 said: بالنسبه لو الموظف متاح له أكثر من اجازة خلال العام ولهذا استخدمت Dlast ..فهي تأخذ اخر اجازة يمكنك ان تستخدم هذا الكود ايضا Private Sub DateShift_AfterUpdate() Dim startDate As Date Dim endDate As Date Dim vacationDate As Date startDate = DLast("[strDate]", "[TblLeaveRegistrationOrdinary]", "[Emp]='" & [emp] & "'") endDate = DLast("[EndDate]", "[TblLeaveRegistrationOrdinary]", "[Emp]='" & [emp] & "'") vacationDate = Me.DateShift If vacationDate >= startDate And vacationDate <= endDate Then MsgBox "الموظف في اجازة" Me.DateShift = "" End If End Sub تم تعديل ديسمبر 29, 2022 بواسطه Eng.Qassim
AbuuAhmed قام بنشر ديسمبر 29, 2022 قام بنشر ديسمبر 29, 2022 أقترح باستخدام DMax بدلا من DLast تفاديا لأخطاء ادخالات الموظفين، فـ DLast تأخذ القيم حسب ترتيب اضافتها للجداول. والمعذرة لكم.
Eng.Qassim قام بنشر ديسمبر 30, 2022 قام بنشر ديسمبر 30, 2022 15 ساعات مضت, AbuuAhmed said: أقترح باستخدام DMax بدلا من DLast تفاديا لأخطاء ادخالات الموظفين، فـ DLast تأخذ القيم حسب ترتيب اضافتها للجداول كلامك صحيح استاذي @AbuuAhmed لكني افترضت ان ادخال التواريخ يومي او عامل Ascending للتاريخ تبقى DMax افضل تفاديا للاخطاء احسنت استاذ 1
MO87 قام بنشر ديسمبر 30, 2022 الكاتب قام بنشر ديسمبر 30, 2022 21 ساعات مضت, Eng.Qassim said: Dim startDate As Date Dim endDate As Date Dim vacationDate As Date startDate = DLast("[strDate]", "[TblLeaveRegistrationOrdinary]", "[Emp]='" & [emp] & "'") endDate = DLast("[EndDate]", "[TblLeaveRegistrationOrdinary]", "[Emp]='" & [emp] & "'") vacationDate = Me.DateShift If vacationDate >= startDate And vacationDate <= endDate Then MsgBox "الموظف في اجازة" Me.DateShift = "" End If تعطيني خطا الدالة في السابق كانت تعمل
AbuuAhmed قام بنشر ديسمبر 30, 2022 قام بنشر ديسمبر 30, 2022 9 ساعات مضت, Eng.Qassim said: او عامل Ascending للتاريخ الترتيب لن يخادع دالة DLast 🙂
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.