kaser906 قام بنشر ديسمبر 2, 2016 قام بنشر ديسمبر 2, 2016 السلام عليكم ورحمة الله المطلوب بالمرفق الحاق أيام محددة بين تاريخين بالجدول المرتبط Tbl_2 شرح المطلوب موجود على النموذج بالتفصيل tdate.rar
jjafferr قام بنشر ديسمبر 3, 2016 قام بنشر ديسمبر 3, 2016 تفضل . والكود الذي يقوم بهذا العمل: Private Sub cmd1_Click() Dim rst As DAO.Recordset Set rst = CurrentDb.OpenRecordset("Select * From Tbl_2") How_Many_Days = UmDateDiff("d", Me.StarteDate, Me.EndDate) For i = 1 To How_Many_Days Next_Date = UmDateAdd("d", i, Me.StarteDate) Next_Day = UmWeekDayName(UmWeekday(Next_Date)) 'MsgBox Next_Date & " " & Next_Day add_Day = "" If Me.iSunday = -1 And Next_Day = "Sunday" Then add_Day = "Sunday" ElseIf Me.iMonday = -1 And Next_Day = "Monday" Then add_Day = "Monday" ElseIf Me.iTuesday = -1 And Next_Day = "Tuesday" Then add_Day = "Tuesday" ElseIf Me.iWednesday = -1 And Next_Day = "Wednesday" Then add_Day = "Wednesday" ElseIf Me.iThursday = -1 And Next_Day = "Thursday" Then add_Day = "Thursday" End If If add_Day <> "" Then rst.AddNew rst!TDate = Next_Date: rst!TDay = add_Day: rst!PcDigit = Me.PcDigit: rst!auto_id = Me.auto_id rst.Update End If Next i rst.Close: Set rst = Nothing End Sub جعفر 471.tdate.mdb.zip
kaser906 قام بنشر ديسمبر 4, 2016 الكاتب قام بنشر ديسمبر 4, 2016 صباح الخير استاذي الكريم جعفر الله يعطيك العافية جربت المرفق عند النقر على زر الحفظ لاتحدث أي استجابة كأن الكود مش موجود ولا يتم الحاق اي سجل بالجدول Tbl_2 أمر اخر لاحظت بالجدول أسماء الايام باللغة الانجليزية لو تقدر تخليها باللغة العربية
jjafferr قام بنشر ديسمبر 4, 2016 قام بنشر ديسمبر 4, 2016 وعليكم السلام 3 ساعات مضت, kaser906 said: عند النقر على زر الحفظ لاتحدث أي استجابة كأن الكود مش موجود هذا لأنك لم تختار اي يوم للتدريب على العموم ، عملت تغييرات في البرنامج ، حتى يحذرك اذا لم تختار الايام او تدخل التواريخ ، واذا تم ادخال التاريخ مسبقا للـ PcDigit فانه يحذرك كذلك وعملت لم الملاحظات في البرنامج ، اذا اردت تغيير اي شئ فيه Private Sub cmd1_Click() 'التاكد ان الحقول المطلوبة تم اختيارها في النموذج If Len(Me.StarteDate & "") = 0 Then MsgBox "رجاء ادخال تاريخ البداية" Me.StarteDate.SetFocus Exit Sub ElseIf Len(Me.EndDate & "") = 0 Then MsgBox "رجاء ادخال تاريخ النهاية" Me.EndDate.SetFocus Exit Sub ElseIf (Len(Me.iSunday & "") = 0 Or Me.iSunday = 0) And _ (Len(Me.iMonday & "") = 0 Or Me.iMonday = 0) And _ (Len(Me.iTuesday & "") = 0 Or Me.iTuesday = 0) And _ (Len(Me.iWednesday & "") = 0 Or Me.iWednesday = 0) And _ (Len(Me.iThursday & "") = 0 Or Me.iThursday = 0) Then MsgBox "رجاء الاختيار من ايام التدريب" Exit Sub End If Dim rst As DAO.Recordset Set rst = CurrentDb.OpenRecordset("Select * From Tbl_2") 'عدد الايام بين يومي البداية والنهاية How_Many_Days = UmDateDiff("d", Me.StarteDate, Me.EndDate) For i = 1 To How_Many_Days Next_Date = UmDateAdd("d", i, Me.StarteDate) 'التاريخ الهجري التالي Next_Day = UmWeekDayName(UmWeekday(Next_Date)) 'اليوم التالي 'MsgBox Next_Date & " " & Next_Day add_Day = "" 'اذا تم اختيار اليم في النموذج ، ما هو اليوم If Me.iSunday = -1 And Next_Day = "Sunday" Then add_Day = "الاحد" ElseIf Me.iMonday = -1 And Next_Day = "Monday" Then add_Day = "الاثنين" ElseIf Me.iTuesday = -1 And Next_Day = "Tuesday" Then add_Day = "الثلاثاء" ElseIf Me.iWednesday = -1 And Next_Day = "Wednesday" Then add_Day = "الاربعاء" ElseIf Me.iThursday = -1 And Next_Day = "Thursday" Then add_Day = "الخميس" End If 'لدينا تاريخ يجب ادخاله If add_Day <> "" Then 'ولكن هل تم ادخال هذا التاريخ سابقا لهذا PCDigit rst.FindFirst "[PcDigit]=" & Me.PcDigit & " And [TDate] ='" & Next_Date & "'" If rst.NoMatch Then 'غير موجود rst.AddNew rst!TDate = Next_Date: rst!TDay = add_Day: rst!PcDigit = Me.PcDigit: rst!auto_id = Me.auto_id rst.Update Else 'موجود MsgBox "الموظف رقم " & Me.PcDigit & vbCrLf & _ "يوجد لديه تدريب سابق يوم " & add_Day & vbCrLf & _ "بتاريخ " & Next_Date & vbCrLf & vbCrLf & _ "هذا التاريخ لم يتم ادخاله مرة اخرى" End If End If Next i rst.Close: Set rst = Nothing End Sub . جعفر 471.tdate.mdb.zip
kaser906 قام بنشر ديسمبر 4, 2016 الكاتب قام بنشر ديسمبر 4, 2016 منذ ساعه, jjafferr said: وعليكم السلام هذا لأنك لم تختار اي يوم للتدريب على العموم ، عملت تغييرات في البرنامج ، حتى يحذرك اذا لم تختار الايام او تدخل التواريخ ، واذا تم ادخال التاريخ مسبقا للـ PcDigit فانه يحذرك كذلك وعملت لم الملاحظات في البرنامج ، اذا اردت تغيير اي شئ فيه Private Sub cmd1_Click() 'التاكد ان الحقول المطلوبة تم اختيارها في النموذج If Len(Me.StarteDate & "") = 0 Then MsgBox "رجاء ادخال تاريخ البداية" Me.StarteDate.SetFocus Exit Sub ElseIf Len(Me.EndDate & "") = 0 Then MsgBox "رجاء ادخال تاريخ النهاية" Me.EndDate.SetFocus Exit Sub ElseIf (Len(Me.iSunday & "") = 0 Or Me.iSunday = 0) And _ (Len(Me.iMonday & "") = 0 Or Me.iMonday = 0) And _ (Len(Me.iTuesday & "") = 0 Or Me.iTuesday = 0) And _ (Len(Me.iWednesday & "") = 0 Or Me.iWednesday = 0) And _ (Len(Me.iThursday & "") = 0 Or Me.iThursday = 0) Then MsgBox "رجاء الاختيار من ايام التدريب" Exit Sub End If Dim rst As DAO.Recordset Set rst = CurrentDb.OpenRecordset("Select * From Tbl_2") 'عدد الايام بين يومي البداية والنهاية How_Many_Days = UmDateDiff("d", Me.StarteDate, Me.EndDate) For i = 1 To How_Many_Days Next_Date = UmDateAdd("d", i, Me.StarteDate) 'التاريخ الهجري التالي Next_Day = UmWeekDayName(UmWeekday(Next_Date)) 'اليوم التالي 'MsgBox Next_Date & " " & Next_Day add_Day = "" 'اذا تم اختيار اليم في النموذج ، ما هو اليوم If Me.iSunday = -1 And Next_Day = "Sunday" Then add_Day = "الاحد" ElseIf Me.iMonday = -1 And Next_Day = "Monday" Then add_Day = "الاثنين" ElseIf Me.iTuesday = -1 And Next_Day = "Tuesday" Then add_Day = "الثلاثاء" ElseIf Me.iWednesday = -1 And Next_Day = "Wednesday" Then add_Day = "الاربعاء" ElseIf Me.iThursday = -1 And Next_Day = "Thursday" Then add_Day = "الخميس" End If 'لدينا تاريخ يجب ادخاله If add_Day <> "" Then 'ولكن هل تم ادخال هذا التاريخ سابقا لهذا PCDigit rst.FindFirst "[PcDigit]=" & Me.PcDigit & " And [TDate] ='" & Next_Date & "'" If rst.NoMatch Then 'غير موجود rst.AddNew rst!TDate = Next_Date: rst!TDay = add_Day: rst!PcDigit = Me.PcDigit: rst!auto_id = Me.auto_id rst.Update Else 'موجود MsgBox "الموظف رقم " & Me.PcDigit & vbCrLf & _ "يوجد لديه تدريب سابق يوم " & add_Day & vbCrLf & _ "بتاريخ " & Next_Date & vbCrLf & vbCrLf & _ "هذا التاريخ لم يتم ادخاله مرة اخرى" End If End If Next i rst.Close: Set rst = Nothing End Sub . جعفر 471.tdate.mdb.zip شاكر ومقدر لك اخي الكريم لكن نفس الشي عندما انقر على زر الامر لا توجد استجابة علماً اني اختار التاريخ والايام المحددة وعندما اذهب الى الجدول القاه فارغ هل يجب تفعيل مكتبات ؟
jjafferr قام بنشر ديسمبر 4, 2016 قام بنشر ديسمبر 4, 2016 الظاهر ان الكود عندك غير مفعّل !! هل تستخدم الاوفيس 2007 او 2010 لأول مرة على جهازك؟ هل لما تشغل البرنامج ، يظهر لك شريط اصفر تحت شريط الادوات في الاكسس: هذا معناه ان الاكسس في حالة حماية لكمبيوترك من هذا البرنامج ، وانه لا يجعل الكود يعمل ، لذلك ، اضغط على الزر في الشريط الاصفر ، وسيعمل البرنامج ان شاء الله اما اذا لم تكن هذه المشكلة ، فعد ، وسنحاول اشياء اخرى 27 دقائق مضت, kaser906 said: هل يجب تفعيل مكتبات ؟ لا جعفر
kaser906 قام بنشر ديسمبر 4, 2016 الكاتب قام بنشر ديسمبر 4, 2016 2 دقائق مضت, jjafferr said: الظاهر ان الكود عندك غير مفعّل !! هل تستخدم الاوفيس 2007 او 2010 لأول مرة على جهازك؟ هل لما تشغل البرنامج ، يظهر لك شريط اصفر تحت شريط الادوات في الاكسس: هذا معناه ان الاكسس في حالة حماية لكمبيوترك من هذا البرنامج ، وانه لا يجعل الكود يعمل ، لذلك ، اضغط على الزر في الشريط الاصفر ، وسيعمل البرنامج ان شاء الله اما اذا لم تكن هذه المشكلة ، فعد ، وسنحاول اشياء اخرى لا جعفر نعم اخي جعفر لقد قمت بتفعيل المايكرو من خيارات مركز التوثيق انا استخدم اوفيس 2007 وجربت على 2016 وجربت افتح الملف من جهاز أخر بالأوفيس 2010 والنتيجة واحدة لا توجد استجابة
jjafferr قام بنشر ديسمبر 4, 2016 قام بنشر ديسمبر 4, 2016 الآن تذكرت اخي قيصر ، الظاهر انك فقط اخذت الكود ووضعته في برنامجك !! فالزر في برنامجك السابق لم يكن يذهب للكود ، وانما كنت انت عملت عليه ماكرو ، فرجاء استعمل برنامجي كما هو ، واذا اشتغل ، سنتحدث عن كيفية اضافة الكود لبرنامجك جعفر
kaser906 قام بنشر ديسمبر 4, 2016 الكاتب قام بنشر ديسمبر 4, 2016 6 دقائق مضت, jjafferr said: الآن تذكرت اخي قيصر ، الظاهر انك فقط اخذت الكود ووضعته في برنامجك !! فالزر في برنامجك السابق لم يكن يذهب للكود ، وانما كنت انت عملت عليه ماكرو ، فرجاء استعمل برنامجي كما هو ، واذا اشتغل ، سنتحدث عن كيفية اضافة الكود لبرنامجك جعفر اخي جعفر الاسم كاسر وليس قيصر انا لم انسخ الكود بتاتاً انا جربت على البرنامج اللي انت عملت مباشرة
jjafferr قام بنشر ديسمبر 4, 2016 قام بنشر ديسمبر 4, 2016 حياالله كاسر رجاء تتبع الخطوات هذه وتخبرني بالنتيجة تفصيلا: 1. اجعل النموذج في وضع التصميم ، ثم افتح اعدادات الزر "حفظ" ، ثم تبويب الحدث ، والمفروض ان ترى امام الحدث "On Click" الكلمات "[Event Procedure]" ، ثم انقر على الزر الصغير الذي به 3 نقاط (على يمين الصورة) ، هذا سوف يُدخلك في الكود: . 2. على العمود الذي يشير اليه السهم ، وبمحاذات الجملة التي تراها ، انقر بالفأرة اليسار على العمود ، فستلاحظ انه تم عمل نقطة في العمود (كما في الصورة) . 3. ارجع الى النموذج ، وقم بتشغيل النموذج ، واضغط على الزر "حفظ" . 4. سيأخذك البرنامج الى صفحة الكود ، وسترى التظليل الاصفر لنفس السطر الذي عملنا نقطة بجواره . 5. اضغط على الكيبورد على الزر F8 ثلاث مرات ، وسترى ان السطر الاصفر المظلل ذهب الى السطر ، كما اصبح في الصورة . 6. عند الضغط على الزر F8 مرة اخرى ، المفروض ان ترى النموذج وبه صورة الرسالة . رجاء تخبرني اذا كنت ترى ما ارى ، او ان كمبيوترك يرى ما لا ارى جعفر
kaser906 قام بنشر ديسمبر 4, 2016 الكاتب قام بنشر ديسمبر 4, 2016 نعم أخي جعفر أنا وكمبيوتري نرى الذي تراه تماما فعند ادخال البيانات وترك احد الحقول فارغا تظهر الرسالة وعند إكمال البيانات والنقر على زر الامر لايحدث أي شي في الجدول Tbl_2
jjafferr قام بنشر ديسمبر 4, 2016 قام بنشر ديسمبر 4, 2016 الحمدلله ، اهم شئ هو الدخول في الكود الشئ الذي يأتي على بالي الآن هو ، ان تنصيب الوندوز عندي انجليزي ، واعتقد عندك عربي ، لهذا السبب ايام الاسبوع قد تكون عندك بالعربي ، بينما هي عندي بالانجليزي ، لذا ، اضف السطر الثالث الى الكود : Next_Date = UmDateAdd("d", i, Me.StarteDate) 'التاريخ الهجري التالي Next_Day = UmWeekDayName(UmWeekday(Next_Date)) 'اليوم التالي debug.print Next_Day . ثم شغل النموذج واضغط على زر الحفظ ، ثم ادخل في الكود واضغط على Ctrl + G او انظر للصورة: . وانسخ لي الاسماء التي في المربع الاحمر الى الموقع لوسمحت ، فانا اشك انها بالعربية ، واريد الاسم بالضبط كما يراه الكمبيوتر جعفر
jjafferr قام بنشر ديسمبر 4, 2016 قام بنشر ديسمبر 4, 2016 أخي كاسر تم تغيير الكود بحيث لا يقرا اليوم ، وانما رقم اليوم في الكود ، فعليه ، المفروض ان يعمل البرنامج الان على جميع الاجهزة ، وهذا هو الكود المُعدل: Private Sub cmd1_Click() 'التاكد ان الحقول المطلوبة تم اختيارها في النموذج If Len(Me.StarteDate & "") = 0 Then MsgBox "رجاء ادخال تاريخ البداية" Me.StarteDate.SetFocus Exit Sub ElseIf Len(Me.EndDate & "") = 0 Then MsgBox "رجاء ادخال تاريخ النهاية" Me.EndDate.SetFocus Exit Sub ElseIf (Len(Me.iSunday & "") = 0 Or Me.iSunday = 0) And _ (Len(Me.iMonday & "") = 0 Or Me.iMonday = 0) And _ (Len(Me.iTuesday & "") = 0 Or Me.iTuesday = 0) And _ (Len(Me.iWednesday & "") = 0 Or Me.iWednesday = 0) And _ (Len(Me.iThursday & "") = 0 Or Me.iThursday = 0) Then MsgBox "رجاء الاختيار من ايام التدريب" Exit Sub End If Dim rst As DAO.Recordset Set rst = CurrentDb.OpenRecordset("Select * From Tbl_2") 'عدد الايام بين يومي البداية والنهاية How_Many_Days = UmDateDiff("d", Me.StarteDate, Me.EndDate) For i = 1 To How_Many_Days Next_Date = UmDateAdd("d", i, Me.StarteDate) 'التاريخ الهجري التالي Next_Day2 = UmWeekDayName(UmWeekday(Next_Date)) 'اليوم التالي Next_Day = UmWeekday(Next_Date) 'اليوم التالي بالرقم 'Debug.Print Next_Day & "-" & Next_Day2 'MsgBox Next_Date & " " & Next_Day add_Day = "" 'اذا تم اختيار اليم في النموذج ، ما هو اليوم If Me.iSunday = -1 And Next_Day = 1 Then add_Day = "الاحد" '"Sunday" ElseIf Me.iMonday = -1 And Next_Day = 2 Then add_Day = "الاثنين" '"Monday" ElseIf Me.iTuesday = -1 And Next_Day = 3 Then add_Day = "الثلاثاء" '"Tuesday" ElseIf Me.iWednesday = -1 And Next_Day = 4 Then add_Day = "الاربعاء" '"Wednesday" ElseIf Me.iThursday = -1 And Next_Day = 5 Then add_Day = "الخميس" '"Thursday" End If 'لدينا تاريخ يجب ادخاله If add_Day <> "" Then 'ولكن هل تم ادخال هذا التاريخ سابقا لهذا PCDigit rst.FindFirst "[PcDigit]=" & Me.PcDigit & " And [TDate] ='" & Next_Date & "'" If rst.NoMatch Then 'غير موجود rst.AddNew rst!TDate = Next_Date: rst!TDay = add_Day: rst!PcDigit = Me.PcDigit: rst!auto_id = Me.auto_id rst.Update Else 'موجود MsgBox "الموظف رقم " & Me.PcDigit & vbCrLf & _ "يوجد لديه تدريب سابق يوم " & add_Day & vbCrLf & _ "بتاريخ " & Next_Date & vbCrLf & vbCrLf & _ "هذا التاريخ لم يتم ادخاله مرة اخرى" End If End If Next i rst.Close: Set rst = Nothing End Sub جعفر 471.tdate.mdb.zip 1
kaser906 قام بنشر ديسمبر 4, 2016 الكاتب قام بنشر ديسمبر 4, 2016 النتيجة ممتازة استاذي الكريم الآن بدأ الكود يعمل بشكل ممتاز فقط يدور في ذهني الان سؤال لو حاولت أني اعمل تعديل على التاريخ في النموذج بزيادة او انقاص تاريخ البداية وايضاً بزيادة او انقاص تاريخ النهاية كيف سأتمكن من تعديل الايام التي ادرجت بالجدول Tbl_2 وعندي طلب أخر اخي جعفر هل يمكن ادراج التاريخ من اليمين الى اليسار لضبط التنسيق مثل : 1438/3/3
jjafferr قام بنشر ديسمبر 4, 2016 قام بنشر ديسمبر 4, 2016 39 دقائق مضت, kaser906 said: النتيجة ممتازة استاذي الكريم الآن بدأ الكود يعمل بشكل ممتاز فقط يدور في ذهني الان سؤال 1. لو حاولت أني اعمل تعديل على التاريخ في النموذج بزيادة او انقاص تاريخ البداية وايضاً بزيادة او انقاص تاريخ النهاية 2. كيف سأتمكن من تعديل الايام التي ادرجت بالجدول Tbl_2 وعندي طلب أخر اخي جعفر 3. هل يمكن ادراج التاريخ من اليمين الى اليسار لضبط التنسيق مثل : 1438/3/3 حياك الله 1. الكود يأخذ اي تاريخ هجري (والكود الذي وضعته انت اصلا يخص ام القرى) ، فما في مشكلة ، 2. اعمل نموذج على اساس الجدول Tbl_2 ، وتستطيع ان تغير فيه كما تشاء ، 3. في تنسيق التاريخ لحقل التاريخ ، انت ادخلته كـ dd/mm/yyyy ، والذي يجب ان تعمله هو yyyy/mm/dd ، هذا اذا اردت الرقم 1 يكون 01 (اي رقمين ، وانا انصحك بهذا ، حيث لن تتعب في الفرز) ، بينما اذا اردت التنسيق رقم واحد مثل ما اشرت في مثالك ، فالتنسيق سيكون yyyy/m/d جعفر
kaser906 قام بنشر ديسمبر 4, 2016 الكاتب قام بنشر ديسمبر 4, 2016 منذ ساعه, jjafferr said: حياك الله 1. الكود يأخذ اي تاريخ هجري (والكود الذي وضعته انت اصلا يخص ام القرى) ، فما في مشكلة ، 2. اعمل نموذج على اساس الجدول Tbl_2 ، وتستطيع ان تغير فيه كما تشاء ، 3. في تنسيق التاريخ لحقل التاريخ ، انت ادخلته كـ dd/mm/yyyy ، والذي يجب ان تعمله هو yyyy/mm/dd ، هذا اذا اردت الرقم 1 يكون 01 (اي رقمين ، وانا انصحك بهذا ، حيث لن تتعب في الفرز) ، بينما اذا اردت التنسيق رقم واحد مثل ما اشرت في مثالك ، فالتنسيق سيكون yyyy/m/d جعفر استاذي جعفر اسمح لي فقد اثقلت عليك يبدو أني لم استطع ايضاح ما اريد انا وضعت تنسيق التاريخ بالجدول yyyy/mm/dd لكن بالنسبة لادراج تاريخ ام القرى عن طريق الكود فيجب تعريف الادخال من الكود الذي عملته انت حاولت اني اعدل على الكود الذي عملته باضافة UmFormat ولكن ظهرت عندي اخطاء هذا الكود لدي على برنامجي ممكن يفيدك في فهم ما اريدة يحتوي على تنسيق الادخال للجدول مباشرة tdat = UmFormat(UmDateAdd("d", i, Me.[startdate]), Enddate.Format) وهذه صورة توضح http://
jjafferr قام بنشر ديسمبر 4, 2016 قام بنشر ديسمبر 4, 2016 تفضل اضف السطر الرابع للكود ، وفي هذا المكان المحدد Next_Date = UmDateAdd("d", i, Me.StarteDate) 'التاريخ الهجري التالي Next_Day2 = UmWeekDayName(UmWeekday(Next_Date)) 'اليوم التالي Next_Day = UmWeekday(Next_Date) 'اليوم التالي بالرقم Next_Date = UmFormat(Next_Date, "yyyy/mm/dd") 'تغيير تنسيق التاريخ جعفر
kaser906 قام بنشر ديسمبر 4, 2016 الكاتب قام بنشر ديسمبر 4, 2016 منذ ساعه, jjafferr said: تفضل اضف السطر الرابع للكود ، وفي هذا المكان المحدد Next_Date = UmDateAdd("d", i, Me.StarteDate) 'التاريخ الهجري التالي Next_Day2 = UmWeekDayName(UmWeekday(Next_Date)) 'اليوم التالي Next_Day = UmWeekday(Next_Date) 'اليوم التالي بالرقم Next_Date = UmFormat(Next_Date, "yyyy/mm/dd") 'تغيير تنسيق التاريخ جعفر تمام الله يعطيك العافية وجدت خلل بصيط اخي جعفر لاحظت انه لايتم ادخال اليوم الاول في التدريب بمعنى لو كان تاريخ بداية ا التدريب 1438/03/05 يوافق الاحد ونهاية التدريب 1438/03/07 يوافق يوم الثلاثاء وتم التأشير على ايام التدريب الاحد والاثنين والثلاثاء يتم ادخال يومين فقط يوم الاثنين ويوم الثلاثاء ولا يتم ادخال يوم الاحد
jjafferr قام بنشر ديسمبر 4, 2016 قام بنشر ديسمبر 4, 2016 تفضل استعمل هذا السطر بدل اللي في الكود: For i = 0 To How_Many_Days يعني استعملنا الصفر بدل الواحد. جعفر
kaser906 قام بنشر ديسمبر 4, 2016 الكاتب قام بنشر ديسمبر 4, 2016 9 دقائق مضت, jjafferr said: تفضل استعمل هذا السطر بدل اللي في الكود: For i = 0 To How_Many_Days يعني استعملنا الصفر بدل الواحد. جعفر ربي يوفقك ويسعدك ويسهل أمورك ويرحم والديك الف شكر لك
jjafferr قام بنشر ديسمبر 4, 2016 قام بنشر ديسمبر 4, 2016 هلا والله وهاي الكود الكامل بالتعديلات: Private Sub cmd1_Click() 'التاكد ان الحقول المطلوبة تم اختيارها في النموذج If Len(Me.StarteDate & "") = 0 Then MsgBox "رجاء ادخال تاريخ البداية" Me.StarteDate.SetFocus Exit Sub ElseIf Len(Me.EndDate & "") = 0 Then MsgBox "رجاء ادخال تاريخ النهاية" Me.EndDate.SetFocus Exit Sub ElseIf (Len(Me.iSunday & "") = 0 Or Me.iSunday = 0) And _ (Len(Me.iMonday & "") = 0 Or Me.iMonday = 0) And _ (Len(Me.iTuesday & "") = 0 Or Me.iTuesday = 0) And _ (Len(Me.iWednesday & "") = 0 Or Me.iWednesday = 0) And _ (Len(Me.iThursday & "") = 0 Or Me.iThursday = 0) Then MsgBox "رجاء الاختيار من ايام التدريب" Exit Sub End If Dim rst As DAO.Recordset Set rst = CurrentDb.OpenRecordset("Select * From Tbl_2") 'عدد الايام بين يومي البداية والنهاية How_Many_Days = UmDateDiff("d", Me.StarteDate, Me.EndDate) For i = 0 To How_Many_Days Next_Date = UmDateAdd("d", i, Me.StarteDate) 'التاريخ الهجري التالي Next_Day2 = UmWeekDayName(UmWeekday(Next_Date)) 'اليوم التالي Next_Day = UmWeekday(Next_Date) 'اليوم التالي بالرقم Next_Date = UmFormat(Next_Date, "yyyy/mm/dd") 'تغيير تنسيق التاريخ 'Debug.Print Next_Day & "-" & Next_Day2 'MsgBox Next_Date & " " & Next_Day add_Day = "" 'اذا تم اختيار اليم في النموذج ، ما هو اليوم If Me.iSunday = -1 And Next_Day = 1 Then add_Day = "الاحد" '"Sunday" ElseIf Me.iMonday = -1 And Next_Day = 2 Then add_Day = "الاثنين" '"Monday" ElseIf Me.iTuesday = -1 And Next_Day = 3 Then add_Day = "الثلاثاء" '"Tuesday" ElseIf Me.iWednesday = -1 And Next_Day = 4 Then add_Day = "الاربعاء" '"Wednesday" ElseIf Me.iThursday = -1 And Next_Day = 5 Then add_Day = "الخميس" '"Thursday" End If 'لدينا تاريخ يجب ادخاله If add_Day <> "" Then 'ولكن هل تم ادخال هذا التاريخ سابقا لهذا PCDigit rst.FindFirst "[PcDigit]=" & Me.PcDigit & " And [TDate] ='" & Next_Date & "'" If rst.NoMatch Then 'غير موجود rst.AddNew rst!TDate = Next_Date: rst!TDay = add_Day: rst!PcDigit = Me.PcDigit: rst!auto_id = Me.auto_id rst.Update Else 'موجود MsgBox "الموظف رقم " & Me.PcDigit & vbCrLf & _ "يوجد لديه تدريب سابق يوم " & add_Day & vbCrLf & _ "بتاريخ " & Next_Date & vbCrLf & vbCrLf & _ "هذا التاريخ لم يتم ادخاله مرة اخرى" End If End If Next i rst.Close: Set rst = Nothing End Sub وهاي المرفق النهائي جعفر 471.tdate.mdb.zip
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.