الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مساعدة اكمال الكود

مغلقمُجاب
بدأه حسين العميسي في 26 مايو 2013 · 15 رد · 926 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

ارجو مساعدتي

في كتابة الكود للمثال المرفق

شرح المطلوب موجود في جدول الملاحظة المرفق

واتمنى استخدام دالة الدوران بدل استعلام التحديثمساعدة اكمال الكود.rar

ولكم جزيل الشكر

 

 

 

للرفع

تم تعديل هذه المشاركة بواسطة حسين العميسي في 27 مايو 2013 في 23:04

#2

اي مثال؟

لا توجد مرفقات !!

 

جعفر

1
#3

والله ارفقت المثال

بس مش عارف ايش يحصل

وانا كمان شايف ان هذا الموضوع موجود مرتين

وانا اللي كاتبه

ليش ظهر مرتين

#4

للرفع

#5

إن شاء الله هذا اللي كنت تريده :)

تم العمل على النموذجين.

 

جعفر

3.مساعدة اكمال الكود.accdb.zip

#6

شكرا اخ جعفر على هذا الحل الرائع

بس اتمنى ايا اخي لو يكون الحل بواسطة جمل الدوران في الكود

بدون استخدام الاستعلام

ولك جزيل الشكر

 

jjafferr كتب:

إن شاء الله هذا اللي كنت تريده :)

تم العمل على النموذجين.

 

جعفر

شكرا اخي جعفر بس اذا تكرمت

افضل استخدام جملة الدوران داخل الكود

لتوزيع مجموعات ارقام السري

كما فعلت انت في توزيع ارقام الجلوس

ولكن بدل الذهاب الى اول سجل يذهب الى السجل الذي سوف ادخل رقم جلوسه في بداية المجموعة

فهل بالامكان ذلك 

وذلك لغرض في نفس يعقوب

تم تعديل هذه المشاركة بواسطة حسين العميسي في 28 مايو 2013 في 12:13

#7 أفضل إجابة

صدقني طال عمرك اني اشتغلت حسب طلبك وما استخدمت اي استعلام، وانما استعملت جملة الدوران داخل الكود في النموذجين، مثل هذا الكود:

 


'move the Recordset cursor to the First Record
rst.MoveLast: rst.MoveFirst

'loop through the Records, and assign a value to each sre
j = Me.nStart - 1
Do Until rst.EOF
j = j + 1
rst.Edit
rst!sre = j
rst.Update
rst.MoveNext
Loop
Me.Requery

 

واتفضل الملف فيه Filter للنموذج للصف ورقم الجلوس من والى :)

 

وانا ارحب بيعقوب :)

 

جعفر

3.مساعدة اكمال الكود.accdb.zip

تم تعديل هذه المشاركة بواسطة jjafferr في 28 مايو 2013 في 15:08

1
#8

شكرا اخي جعفر ماقصرت

بس انا مش فاهم كثير

انا فهمت كود توزيع الجلوس

اما السري فلم افهمه

فهمت جملة الدوران for 

والله يجزيك خير

تم تعديل هذه المشاركة بواسطة حسين العميسي في 28 مايو 2013 في 23:41

#9

حياك الله :)

هل افهم من ردك انه سؤال ، او انه تعقيب؟

 

جعفر

#10

تسلم يااخ جعفر الف الف شكر

لك

بس لو عندك وقت

تعمل السري

مثل رقم الجلوس

بنفس الفكرة 

docmd.goto..........

#11

حياك الله اخي حسين :)

 

docmd.goto يستخدم للتنقل بين السجلات في النموذج ، بينما الكود اللي انا عملته يستخدم للتنقل بين السجلات في الجدول ،

وعندما يكون لديك عدد كبير من السجلات في النموذج ، وتستخدم طريقة docmd.goto لفحص كل السجلات ، فإنك ستشاهد (فيلم :) ) السجلات في النموذج تذهب الى اعلى واسفل حتى تتحقق من المطلوب في الكود ،

لهذا ، وبسبب ان الكود يجب ان يفحص كل سجلات الصف (المختارة الان ، والتي لم يتم اختيارها بين رقمي الجلوس) ، فالعملية ستأخذ وقتا طويلا ،

لذا ، قمت بالعملية في سجلات الجدول ، لانها اسرع بكثير :)

 

جعفر

#12
jjafferr كتب:

حياك الله اخي حسين :)

 

docmd.goto يستخدم للتنقل بين السجلات في النموذج ، بينما الكود اللي انا عملته يستخدم للتنقل بين السجلات في الجدول ،

وعندما يكون لديك عدد كبير من السجلات في النموذج ، وتستخدم طريقة docmd.goto لفحص كل السجلات ، فإنك ستشاهد (فيلم :) ) السجلات في النموذج تذهب الى اعلى واسفل حتى تتحقق من المطلوب في الكود ،

لهذا ، وبسبب ان الكود يجب ان يفحص كل سجلات الصف (المختارة الان ، والتي لم يتم اختيارها بين رقمي الجلوس) ، فالعملية ستأخذ وقتا طويلا ،

لذا ، قمت بالعملية في سجلات الجدول ، لانها اسرع بكثير :)

 

جعفر

اخ جعفر

ممكن تشرح لي هذا الجزء من  الكود الي انته عملته

rst.MoveLast: rst.MoveFirst

ولماذا استخدمت النقطتين

#13

اهلا اخي حسين

 

عندما تقرأ الجدول او الاستعلام عن طريق Recordset ، فيجب التأكد ان نقطة البدء يجب ان تكون اول سجل ، وهذا يعتمد على استخدامنا DAO او ADO ،

فلهذا ، وتجنباً لعدم قراءة السجلات كاملة ، فأننا نستخدم الامرين.

 

بالاضافة الى انه إن تمت قراءة الجدول ، فيجب اعطاءه امر الذهاب لأول سجل كذلك ، واحتياطاً يجب استخدام الامرين.

 

في الحقيقة ، Recordset يعطينا مرونة جداً عالية في التعامل مع السجلات ، ويمكنك عمل اكثر من Recordset واحد للجدول (اذا اردت عمل مقارنة بين السجلات مثلا) ، و أوامره قليلة لتعلمها.

وعندما تجربها وتبدأ في استخراج النتائج ، فسترى مدى سرعة العمل بها ومرونتها بالمقارنة مع docmd.goto .

 

جعفر

1
#14
jjafferr كتب:

اهلا اخي حسين

 

عندما تقرأ الجدول او الاستعلام عن طريق Recordset ، فيجب التأكد ان نقطة البدء يجب ان تكون اول سجل ، وهذا يعتمد على استخدامنا DAO او ADO ،

فلهذا ، وتجنباً لعدم قراءة السجلات كاملة ، فأننا نستخدم الامرين.

 

بالاضافة الى انه إن تمت قراءة الجدول ، فيجب اعطاءه امر الذهاب لأول سجل كذلك ، واحتياطاً يجب استخدام الامرين.

 

في الحقيقة ، Recordset يعطينا مرونة جداً عالية في التعامل مع السجلات ، ويمكنك عمل اكثر من Recordset واحد للجدول (اذا اردت عمل مقارنة بين السجلات مثلا) ، و أوامره قليلة لتعلمها.

وعندما تجربها وتبدأ في استخراج النتائج ، فسترى مدى سرعة العمل بها ومرونتها بالمقارنة مع docmd.goto .

 

جعفر

شكرا اخ جعفر على هذه المعلومات

واسأل الله ان يزيدك من علمه

وعندما اكمل برنامجي

سوف ارفقه لتعديله

واباء الملاحظات

#15
jjafferr كتب:

صدقني طال عمرك اني اشتغلت حسب طلبك وما استخدمت اي استعلام، وانما استعملت جملة الدوران داخل الكود في النموذجين، 

استاذ جعفر

ممكن اذا سمحت في حالة مايكون بداية رقم الجلوس

اكبر من نهاية رقم الجلوس

ان يتم ادخال السري تنازلي

مثلا جلوس 1 ياخذ سري 8

وجلوس 2 ياخذ سري 7

وجلوس 3 ياخذ 6 وهكذا

بجملة  Do Until

 

كما في جملة

for =strt  to  end   step -1

تم تعديل هذه المشاركة بواسطة حسين العميسي في 10 يونيو 2013 في 23:45

#16

ممكن اذا سمحت ياستاذ

ادخال الارقام تنازلي

هذا الموضوع مغلق.

مواضيع مشابهة