الاخوة الاعزاء اقوم الان بعمل برنامج تسجيل الحضور والانصراف مثل حضور ، مبيت ، راحة ، اجازة ، غياب ، مرضى
واريد ان اقوم بكتابة التاريخ مثل 20/07/2010 وانزل للسجل التالى الاقى يوم 21/07/2010 وهكذا الى ان انتهى من التسجيل
ولكم جزيل الشكر
الاخوة الاعزاء اقوم الان بعمل برنامج تسجيل الحضور والانصراف مثل حضور ، مبيت ، راحة ، اجازة ، غياب ، مرضى
واريد ان اقوم بكتابة التاريخ مثل 20/07/2010 وانزل للسجل التالى الاقى يوم 21/07/2010 وهكذا الى ان انتهى من التسجيل
ولكم جزيل الشكر
يمكنك أخي أن تستخدم مثل هذا الكود في حدث BeforeInsert للنموذج:
Me.tstDate = DateAdd("d", 1, Nz(DMax("tstDate", "tblTest"), Date))حيث tblTest هو اسم الجدول، وtstDate هو اسم حقل التاريخ، والله أعلم.
اخى العزيز جربت الكود الذى ارسلته ولكنى لم اجد الحدث BeforeInsert مفيش غير الحدث BeforeUpdate
ارجو التوضيح وشكرا على المساعده
اخى العزيز شكرا لقد وجدت الحدث (Private Sub Form_BeforeInsert(Cancel As Integer
ولكن بعد كتابة التاريخ والنزول الى السجل التالى يغير التاريخ الذى تم تسجيله مثال عند كتابة تاريخ 20/07/2010 يجعله 21/07/2010 لنفس السجل الذى تم كتابتة
وانا اريد ان اكتب التاريخ مثال 20/07/2010 وانزل السجل التالى الاقى تاريخ 21/07/2010 موجود بالفعل دون كتابتة لان تدوين التاريخ لكل موظف مرهق جداً
ولكم الشكر والاحترام
أخي الكريم،
حدث BeforeInsert للنموذج يحدث فوراً عند الشروع في إدخال سجل جديد، وذلك بالبدء في الكتابة في أي حقل... يبدو أن حقل التاريخ عندك هو أول حقل تبدأ فيه الكتابة، لذلك لن يتم تعيين التاريخ المطلوب إلا عند الكتابة فيه. لو كان أول حقل هو حقل آخر، لظهرت القيمة المطلوبة في حقل التاريخ فوراً....
على كل حال، هذا نفس الكود تقريباً في حدث آخر Current للنموذج يقوم بنفس العمل تماماً، فقط بعد أن يتأكد أن السجل الحالي هو سجل جديد:
Private Sub Form_Current()
If Me.NewRecord Then Me.tstDate = DateAdd("d", 1, Nz(DMax("tstDate", "tblTest"), Date))
End Subوالله أعلم.
تم تعديل هذه المشاركة بواسطة أحمد مبارك الحيقي في 25 يوليو 2010 في 14:15
اخى العزيز يبدو انى ارهقتك بكثرة اسئلتى لذا سوف اقوم بارفاق قاعدة البيانات حيث ان النموذج المطلوب التعديل فيه Over_Time1 وارجو من الاخوه الاعزاء مراجعة قاعدة البيانات لمعرفة الاخطاء الموجودة وشكرا
أخي الكريم، يمكنك استخدام نفس الطريقة السابقة، لكن الخطأ عندك في تسمية حقل الجدول، إذ أنه في الجدول عندك (Date)، وقد كتبته في دالة DMax بالشكل txtDate... جرب هذا:
Private Sub Form_Current()
If Me.NewRecord Then Me.txtDate = DateAdd("d", 1, Nz(DMax("Date", "OverTime_Record"), Date))
End Subفقط...
ملحوظة: تجنب تسمية الحقول بأسماء كلمات محجوزة مثل أنواع بيانات أو أسماء دوال...
تم تعديل هذه المشاركة بواسطة أحمد مبارك الحيقي في 26 يوليو 2010 في 14:12
اخى العزيز احمد
انا اسف تعبتك معايا
انا جربت كل الطرق ولك تنجح معى هل يمكن عمل هذا التعديل فى قاعدة البيانات لكى اعرف اين الخطأ الذى اقع فيه وعدم تكراره
لا بأس أخي الكريم، هذا هو الملف المرفق بعد التعديل الطفيف، في نموذج OverTime1 النموذج الفرعي OverTime_Record
...
في انتظار نتيجة تجربتك...
شكرا لك اخى العزيز / احمد مبارك على النتيجة المذهلة بالفعل
بعد ما جربت البرنامج لقيت الحل كما هو المطلوب لك كثير الشكر والاحترام
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…