مايكروسوفت اكسس / استخدام دالة For
استخدام دالة For…Next في مايكروسوفت اكسس VBA
تستخدم الدالة For للدوران اي لتنفيذ امر معين ولكن لعدة مرات مثلا تصفح السجلات من 1 ولغاية السجل 25 لعمل شيئ معين في كل سجل.
الصيغة:
VBA
For i = Start To End
Expretion
Next i
حيث ان
Start = الرقم الذي يبدأ عنده الدوران
End: الرقم الذي ينتهي عنده الدوران
Expretion: الكود الذي نريد تنفيذه في كل مرة
مثال:
في هذا المثال ستظهر لدينا رسالة تحتوي على قيمة المتغير i ولكن هذة الرسالة ستظهر 10 مرات
VBA
For i = 1 To 10
Msgbox i
Next i
وفي الكود اعلاه فان الزيادة او النقصان سيكون بمقدار 1 في كل مرة ولكن اذا اردنا ان نجعل مقدار الزيادة 3 في كل مرة فيمكننا اضافة كلمة Step والقيمة لها وبالتالي فان الكود سيكون:
VBA
For i = 1 To 10 Step 3
Msgbox i
Next i
واذا اردنا ان يكون الدوران بشكل تنازلي او عكسي فان ذلك ممكن وذلك بجعل قيمة Step قيمة سالبة، ولكن يجب الانتباه الى ان رقم البداية يجب ان يكون اكبر من رقم النهاية، ومثال على ذلك
VBA
For i = 100 To 10 Step -10
Msgbox i
Next i
وفي كثير من الاحيان عندما تكون البداية او النهاية او طول الدورة متغيرة فانه يتم استخدام المتغيرات وليس تثبيت الارقام، فمثلا عدد السجلات متغير ولو اردنا استعراض السجلات بالتتالي من السجل الاول الى الاخير فان السجل الاول رقمه 1 اما الاخير فلا نعرف ما هو رقمة فممكن ان يكون 10 وبعد قليل يصبح 15 وهنا نستخدم المتغيرات في تحديد قيمة السجل الاخير وعلية ولاظهار الرسالة بعدد السجلات في الجدول Orders فان الكود سيكون:
VBA
For i = 1 To DCount("*", "Orders")
Msgbox i
Next i
اريد ارسال اميل متعدد لمجموعة من المستخدمين من خلال الاكسيس بمعنى( اريد ارسال مرتب الموظفين الى كل موظف على الايميل الخاص به) ملحوظة بيانات مفردات المرتب pdf وكل موظف لة رقم ثابت
ردحذفصوت منخفض جدا وشىء يغيظ فى الشرح وفوكس غير جيد فى المشاهدة مشاهدة معتمة وكلام الكود غير واضح
ردحذف