wael_rafat قام بنشر مايو 8, 2017 قام بنشر مايو 8, 2017 السلام عليكم ورحمة الله وبركاته ،،، السادة الافاضل اعضاء ومشرفي منتدانا المحترم ، طلبي هو تحديث مربعات الcheckbox عند فتح النموذج fstart والخاصة بالتواريخ الاقل من تاريخ اليوم بمعني عند فتح النموذج ال fstar يقوم بالتشييك على الجدول tbtable ويقوم بتحديث مربعات الcheckbod والتي يكون عندها التاريخ اقل من تاريخ اليوم مرفق صورة توضيحية وقد حاولت فى الكود التالي ولكن لم يضبط معي Set Rs = CurrentDb.OpenRecordset("tbTable", dbOpenDynaset) If Rs.Fields("check") = False Then Rs.MoveLast: Rs.MoveFirst Do While Rs.Fields("dateend") < Date Rs.Fields("check") = True Rs.Edit Rs.Update Rs.MoveNext Loop End If dateend.rar كل الشكر والتقدير احبائي الكرام
jjafferr قام بنشر مايو 8, 2017 قام بنشر مايو 8, 2017 وعليكم السلام اخي وائل انا لم انزلت المرفق ، ولكن الكود التالي المفروض ان يفي بالموضوع Set Rs = me.recordsetclone 'If Rs.Fields("check") = False Then Rs.MoveLast: Rs.MoveFirst Do While Rs.Fields("dateend") < Date Rs.Edit Rs.Fields("check") = True Rs.Update Rs.MoveNext Loop 'End If جعفر
wael_rafat قام بنشر مايو 8, 2017 الكاتب قام بنشر مايو 8, 2017 استاذنا الغالي بارك الله فيك على سرعة المشاركة للاسف ما ضبط ....؟؟
أمير2008 قام بنشر مايو 8, 2017 قام بنشر مايو 8, 2017 طيب جرب ده Set rs = CurrentDb.OpenRecordset("tbTable", dbOpenDynaset) rs.MoveFirst For i = 0 To rs.Fields.Count - 1 If rs!dateend < Date Then rs.Edit rs!check = -1 rs.Update Else rs.Edit rs!check = 0 rs.Update End If rs.MoveNext Next rs.Close Set rs = Nothing
jjafferr قام بنشر مايو 8, 2017 قام بنشر مايو 8, 2017 شوف النموذج الجديد ، مجرد عملت النموذج ، وخليت الكود اعلاه في الحدث "عند تحميل النموذج" جعفر 646.dateend.mdb.zip واذا تريده من نفس النموذج الموجود اصلا: Set Rs = CurrentDb.OpenRecordset("tbTable", dbOpenDynaset) 'If Rs.Fields("check") = False Then Rs.MoveLast: Rs.MoveFirst Do While Rs.Fields("dateend") < Date Rs.Edit Rs.Fields("check") = True Rs.Update Rs.MoveNext Loop 'End If Rs.Close: Set Rs = Nothing جعفر
أمير2008 قام بنشر مايو 8, 2017 قام بنشر مايو 8, 2017 أعتقد أستاذنا جعفر أن المشكلة تكمن في كود التنقل بين السجلات Rs.MoveNext لأنه موجود داخل اللوب الذي يشترط أن يكون التاريخ للسجل أقل من التاريخ الحالي فاذا لم يتحقق الشرط فسوف يتم إنهاء اللوب ولن يحدث تنقل بين السجلات
wael_rafat قام بنشر مايو 8, 2017 الكاتب قام بنشر مايو 8, 2017 استاذنا الغالي للاسف ما ضبط سامحني 1 - الصورة الاولي 2- عند تغيير التاريخ باول سجل من 8 / 5 / 2017 الي 9 / 5 / 2017 سامحني استاذنا وبارك الله فيك
jjafferr قام بنشر مايو 8, 2017 قام بنشر مايو 8, 2017 حياك الله أخي أمير الكودين شغالين تمام ، لكني اعتمدت على كود اخي وائل بالنسبة لمقارنة التاريخ ، والآن عملت طريقتي ، وهي: Set Rs = CurrentDb.OpenRecordset("tbTable", dbOpenDynaset) Rs.MoveLast: Rs.MoveFirst RC = Rs.RecordCount For i = 1 To RC If Rs.Fields("dateend") < Date Then Rs.Edit Rs.Fields("check") = True Rs.Update End If Rs.MoveNext Next i Rs.Close: Set Rs = Nothing او طريقة النموذج مباشرة Set Rs = Me.RecordsetClone Rs.MoveLast: Rs.MoveFirst RC = Rs.RecordCount For i = 1 To RC If Rs.Fields("dateend") < Date Then Rs.Edit Rs.Fields("check") = True Rs.Update End If Rs.MoveNext Next i جعفر أخي أمير يجب ان تبدأ بـ rs.movelast قبل rs.MoveFirst وإلا فلن تحصل على جميع السجلات جعفر 3
أمير2008 قام بنشر مايو 8, 2017 قام بنشر مايو 8, 2017 ممتاز بس عندي سؤال ولا أتذكر أني سألت من قبل هنا بالمنتدى ههههههه الكود Rs.MoveLast: Rs.MoveFirst أنا رجحت أن معناه : انتقل للسجل الأخير ثم للسجل الأول ، فاذا كان اعتقادي صحيح فلماذا ينتقل للسجل الأول والمفترض أن ذلك يحدث طبيعاياً عند فتح النموذج ؟
Shivan Rekany قام بنشر مايو 8, 2017 قام بنشر مايو 8, 2017 استأذن من الاستاذنا @jjafferr , @أمير2008 رغم من كثرة الاجابات اليك هذا Private Sub Form_Load() Dim sql As String sql = "UPDATE tbTable SET tbTable.[check] = True WHERE (((tbTable.dateend)<Date()));" DoCmd.SetWarnings False DoCmd.RunSQL (sql) DoCmd.SetWarnings True End Sub 4
wael_rafat قام بنشر مايو 8, 2017 الكاتب قام بنشر مايو 8, 2017 يا سلام بارك الله فيكم جميعا وزادكم الله من فضلة وعلمه استاذنا القدير @jjafferr تسلم ايدك تماااااام استاذي الحبيب @Shivan Rekany تسلم ايدك تمااااااااااااااام اخي الكريم @أمير2008 بارك الله فيك ولكن مثل ما قال استاذنا جعفر يجب ان تبدأ بـ rs.movelast قبل rs.MoveFirst وإلا فلن تحصل على جميع السجلات كل الشكر والتقدير وبارك الله قيكم جميعا وجزاكم الله عنا خير الجزاء ،،، 18 دقائق مضت, jjafferr said: 1
jjafferr قام بنشر مايو 9, 2017 قام بنشر مايو 9, 2017 10 ساعات مضت, أمير2008 said: ممتاز بس عندي سؤال ولا أتذكر أني سألت من قبل هنا بالمنتدى ههههههه الكود Rs.MoveLast: Rs.MoveFirst أنا رجحت أن معناه : انتقل للسجل الأخير ثم للسجل الأول ، فاذا كان اعتقادي صحيح فلماذا ينتقل للسجل الأول والمفترض أن ذلك يحدث طبيعاياً عند فتح النموذج ؟ وعليكم السلام الاكسس ولسرعةعرض البيانات ، فإنه لا ينتظر وصول جميع السجلات/البيانات من الجداول ، لأن المستخدم عادة سيتصفح النموذج (على اعتبار النموذج مستمر او جدولي) ، ثم ينزل الى الصفحة التالية ... وهكذا ، ولكن في حالتنا ، نريد ان نعرف كم عدد السجلات علشان نعمل Loop ، لذا نريد ان نعرف عدد السجلات ، ثم نبدأ قراءة السجلات من السجل الاول جعفر 2
أمير2008 قام بنشر مايو 9, 2017 قام بنشر مايو 9, 2017 (معدل) جزاكم الله خيرا أ/ جعفر وزادكم من علمه تم تعديل مايو 9, 2017 بواسطه أمير2008
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.