عبد اللطيف سلوم قام بنشر يونيو 20, 2018 قام بنشر يونيو 20, 2018 السلام عليكم هل هناك امكانية لجعل النموذج يتوقف عن العمل بعد عدد معين من السجلات مثلا سند قبض ......... ادعله يستقبل 10 سجلات فقط وبعد ذلك تتحول كافة الحقول الى عدم التمكين اذا حدا عنده فكرة عن الموضوع يا ريت لانه يخدمني كثير بحثت ولم اوفق
jjafferr قام بنشر يونيو 20, 2018 قام بنشر يونيو 20, 2018 وعليكم السلام تستطيع حساب عدد السجلات هكذا (اكتب اسم الجدول بدلا عن Table_Name) : dim rst as dao.recordset dim RC as integet set rst=currentdb.openrecordset("Select * From Table_Name") rst.movelast:rst.movefirst:RC=rst.recordcount if RC=>10000 then هنا تكتب ما تريد من الاوامر لوقف البرنامج endif جعفر 1 1
عبد اللطيف سلوم قام بنشر يونيو 20, 2018 الكاتب قام بنشر يونيو 20, 2018 جاري التجربة 1 ساعه مضت, jjafferr said: وعليكم السلام تستطيع حساب عدد السجلات هكذا (اكتب اسم الجدول بدلا عن Table_Name) : dim rst as dao.recordset dim RC as integet set rst=currentdb.openrecordset("Select * From Table_Name") rst.movelast:rst.movefirst:RC=rst.recordcount if RC=>10000 then هنا تكتب ما تريد من الاوامر لوقف البرنامج endif جعفر اخي العزيز @jjafferr ما حكيت لي وين احط الكود ؟ قبل التحديث ولا بعد ........... الخ ؟؟ 1
محمد سلامة قام بنشر يونيو 20, 2018 قام بنشر يونيو 20, 2018 السلام عليكم ومشاركة مع استاذي جعفر يمكن وضعه في حدث الحالي.. او علي حسب طريقة عمل النموذج تحياتي 3
Shivan Rekany قام بنشر يونيو 20, 2018 قام بنشر يونيو 20, 2018 2 ساعات مضت, عبد اللطيف سلوم said: مثلا سند قبض ......... ادعله يستقبل 10 سجلات فقط وبعد ذلك تتحول كافة الحقول الى عدم التمكين اتفضل اليك مثال على ذلك بطريقة اخرى Private Sub Form_Current() If Me.RecordsetClone.RecordCount >= 10 Then ' Me.Names.Enabled = False ' Me.ID.Enabled = False ' Me.PhoneNumber.Enabled = False Me.Form.AllowAdditions = False Else ' Me.Names.Enabled = true ' Me.ID.Enabled = true ' Me.PhoneNumber.Enabled = true Me.Form.AllowAdditions = True End If End Sub فقط استقبال 10 سجلات في النموذج.accdb 3
jjafferr قام بنشر يونيو 20, 2018 قام بنشر يونيو 20, 2018 وعليكم السلام وبعد التحية والسلام على اخوي محمد سلامة وشفان تستطيع استعمال طريقتي في اي مكان كان ، وحتى في وحدة نمطية مستقله ، مثلا: public function Check_Records() dim rst as dao.recordset dim RC as integet set rst=currentdb.openrecordset("Select * From Table_Name") rst.movelast:rst.movefirst:RC=rst.recordcount if RC=>10000 then هنا تكتب ما تريد من الاوامر لوقف البرنامج endif end function . اما مثال اخوي شفان ، فيكون في النموذج فقط (هكذا بعد التعديل ، لكي تحصل على عدد السجلات الصحيح) Private Sub Form_Current() Me.RecordsetClone.movelast If Me.RecordsetClone.RecordCount >= 10 Then ' Me.Names.Enabled = False ' Me.ID.Enabled = False ' Me.PhoneNumber.Enabled = False Me.Form.AllowAdditions = False Else ' Me.Names.Enabled = true ' Me.ID.Enabled = true ' Me.PhoneNumber.Enabled = true Me.Form.AllowAdditions = True End If End Sub جعفر 3 1
Shivan Rekany قام بنشر يونيو 20, 2018 قام بنشر يونيو 20, 2018 22 دقائق مضت, jjafferr said: اما مثال اخوي شفان ، فيكون في النموذج فقط اهلا بعودتك استاذي الحبيب 27 دقائق مضت, jjafferr said: هكذا بعد التعديل ، لكي تحصل على عدد السجلات الصحيح هل هناك مشكلة بدون ان تكتب هذا السطر 28 دقائق مضت, jjafferr said: Me.RecordsetClone.movelast لان انا جربت بدون هذا السطر بواسطة مسج بوكس ليس هناك مشكلة
jjafferr قام بنشر يونيو 20, 2018 قام بنشر يونيو 20, 2018 حيا الله اخوي شفان الامر Recordset او Recordsetclone هما من عائلة DAO ، فإذا طلبت عدد السجلات مباشرة ، فستحصل على 0 (اي لا سجلات) ، او رقم (ولكن ليس عدد السجلات الصحيح) ، بينما اذا كان عندنا عدد كبير من السجلات ، فاكسس لا يجلب جميع هذه السجلات الى النموذج ، والامر RecordCount. كذلك لا يجلب عدد هذه السجلات ، والسبب ان اكسس يعرض لك عدد معين من السجلات بسرعة وبإستخدام ذاكرة اقل ، واذا اردت الحصول على عدد السجلات الصحيح ، فيجب ان تستخدم MoveLast قبل استعمال RecordCount جعفر 3
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.