يتم كتابة التعليمات البرمجية لـ Microsoft Visual Basic في وحدات تسمى إجراءات. يحتوي الإجراء على سلسلة من عبارات Visual Basic التي تنفذ عملية أو تحسب قيمة. يعتبر إجراء الحدث هو إجراء يتم تشغيله استجابة لبدء تشغيل حدث من قبل المستخدم أو التعليمات البرمجية للبرنامج أو تشغيله بواسطة النظام.
ما هو الحدث؟
الحدث هو إجراء محدد يقع في أو مع كائن معين. يمكن أن يستجيب Microsoft Access لأحداث مختلفة: نقرات الماوس وتغييرات في بيانات وفتح نماذج أو إغلاقها وأشياء أخرى كثيرة. تعتبر الأحداث عادة هي النتيجة لإجراء مستخدم.
باستخدام إجراء حدث، يمكنك إضافة الاستجابة المخصصة الخاصة بك إلى حدث يقع في نموذج أو تقرير أو عنصر تحكم.
ما هو الإجراء؟
الإجراء عبارة عن وحدة من التعليمات البرمجية لـ Microsoft Visual Basic. يحتوي الإجراء على سلسلة من العبارات والأساليب التي تنجز عملية أو تحسب قيمة. على سبيل المثال، يستخدم إجراء الحدث التالي أسلوب OpenForm لفتح نموذج (طلبات):
Private Sub OpenOrders_Click() DoCmd.OpenForm "Orders" End Sub
يوجد نوعان من الإجراءات: الإجراءات الفرعية وإجراءات الدالة.
الإجراءات الفرعية
الإجراءات الفرعية هي التي تنجز عملية أو سلاسل من العمليات لكنها لا ترجع قيمة. يمكنك إنشاء الإجراءات الفرعية الخاصة بك أو استخدام قوالب إجراء الحدث الذي ينشئه Microsoft Access.
يوجد لكل نموذج أو تقرير في قاعدة البيانات وحدة نمطية للنموذج أو وحدة نمطية للتقرير مضمنة وهي تحتوي على قوالب إجراء الحدث. يمكنك إضافة التعليمات البرمجية التي تعمل استجابة للأحداث التي تقع في النموذج أو التقرير أو عناصر التحكم في النموذج أو التقرير. عندما يتعرف Microsoft Access على حدث تم إجراءه في نموذج أو تقرير أو عنصر تحكم، يتم تشغيل إجراء الحدث تلقائياً المطلوب للكائن والحدث. على سبيل المثال، يمكنك كتابة إجراء حدث الذي يعين التركيز إلى مربع نص "اسم الزوج/الزوجة" وذلك عند تحديد المستخدم لخانة اختيار "متزوج".
يمكن للعديد من المعالجات (مثل، "معالج أزرار الأوامر") التي تنشئ الكائنات إنشاء إجراءات حدث للكائن أيضاً. يمكنك الاطلاع على إجراءات الحدث هذه لمشاهدة أمثلة حول كيفية عمل الإجراءات.
إجراءات الدالة
الإجراءات دالة (غالباً ما تسمى دالة) تُرجع قيمة، مثل نتيجة حساب. تتضمن Microsoft Visual Basic العديد من الدالات المضمنة، على سبيل المثال، ترجع الدالة Now التاريخ والوقت الحالي. بالإضافة إلى تلك الدالات المضمنة، يمكنك إنشاء الدالات المخصصة الخاصة بك.
نتيجة لإرجاع الدالات للقيم، يمكنك استخدامها في تعبيرات. يمكنك استخدام الدالات في التعبيرات في العديد من الأماكن في Microsoft Access أو في عبارة أو أسلوب Visual Basic أو في العديد من إعدادات الخصائص أو في تعبير المعايير في عامل تصفية أو استعلام.
يُرجع المثال التالي لإجراء دالة FirtOfNextMonth، تاريخ اليوم الأول من الشهر بعد التاريخ الحالي:
Function FirstOfNextMonth() FirstOfNextMonth = _ DateSerial(Year(Now), Month(Now) + 1, 1) End Function
تتكون هذه الدالة المخصصة من عبارات التعيين المفردة والتي تعين نتائج التعبير (في الجانب الأيمن من علامة يساوي) إلى اسم الدالة، FirstOfNextMonth (على الجانب الأيسر من علامة المساواة). تحسب الدالة النتيجة باستخدام الدالات DateSerial وYear وNow وMonth لـ Visual Basic المضمنة.
بعد إنشاء هذه الدالة، يمكنك استخدامها في التعبير في أي مكان في Microsoft Access. على سبيل المثال، يمكنك تحديد أن يعرض مربع النص اليوم الأول من الشهر بعد التاريخ الحالي كقيمة الافتراضية للمربع بإعداد الخاصية قيم_افتراضية الخاصة بعنصر تحكم مربع نص للتعبير التالي في صفحة الخاصية:
=FirstOfNextMonth()
ملاحظة لاستخدام دالة كإعداد لخاصية، يجب أن تكون الدالة في الوحدة النمطية للنموذج أو للتقرير أو في الوحدة النمطية القياسية. لا يمكنك استخدام دالة في فئة الوحدة النمطية غير المصاحبة للنموذج أو التقرير كإعداد خاصية نموذج أو تقرير.
أمثلة استخدام إجراء الحدث كاستجابة لحدث
عندما تنشئ إجراء حدث لأحد الكائنات، يضيف Microsoft Access قالب إجراء حدث مسمى للحدث والكائن إلى وحدة نمطية لنموذج أو تقرير. كل ما تحتاج فعله هو إضافة تعليمة برمجية تستجيب بالطريقة التي تريدها عندما يقع الحدث للنموذج أو التقرير.
افترض أنك تريد فتح نموذج "تفاصيل منتج" عندما تنقر فوق زر أمر "تفاصيل منتج" في نموذج "طلبات". تبين الأمثلة التالية كيفية القيام بذلك باستخدام إجراء حدث.

1. لتشغيل إجراء حدث عند نقر المستخدم فوق زر الأمر، انقر فوق الخاصية عند_النقر للأمر...
2. ... انقر فوق الزر إنشاء ، ثم انقر فوق منشئ التعليمات البرمجية لإضافة تعليمة Visual Basic برمجية لإجراء الحدث.

1. تستخدم إجراءات الحدث ProductDetails_Click الأسلوب OpenForm لفتح نموذج "تفاصيل المنتج".
بواسطة تعيين قيم جديدة لعناصر التحكم والخصائص كاستجابة إلى الأحداث التي تقع في نموذج أو تقرير، يمكنك جعل الكائنات التي أنشأتها تعمل معاً حتى تصبح سهلة الاستخدام.
إليك بعض المواقف الشائعة التي تستدعي تعيين قيم بواسطة ماكرو أو إجراء حدث:
تعيين قيمة لعنصر تحكم في أحد النماذج مساوية لقيمة عنصر التحكم في نموذج آخر
على سبيل المثال، يمكنك وضع زر الأمر "فتح طلبات" في نموذج "العملاء" الذي يفتح نموذج "الطلبات" ويقوم بتعبئة معلومات الفوترة تلقائياً من نموذج "العملاء".

1. بواسطة النقر فوق الزر "فتح طلبات" يتم فتح نموذج "الطلبات" مع معلومات الفوترة من نموذج "العملاء".
تعيين خاصية نموذج أو عنصر تحكم كاستجابة إلى تحديد أو حدث آخر
يمكنك استخدام ماكرو أو إجراء حدث لتعيين خاصية نموذج أو عنصر تحكم من أجل:
• إخفاء عنصر تحكم أو إظهاره استناداً إلى قيمة عنصر تحكم آخر. على سبيل المثال، قد تحتاج إلى إخفاء عنصر التحكم DateDue "تاريخ الاستحقاق" في نموذج Orders "الطلبات" إذا تم دفع المبلغ المستحق للطلب (إذا كانت قيمة عنصر التحكم Paid "دفع" هي "نعم") أو إظهاره إذا كان لا يزال مستحق.
• تعطيل عنصر تحكم أو تأمينه استناداً إلى قيمة لعنصر تحكم آخر. على سبيل المثال، يمكنك تعطيل عنصر التحكم "رخصة السائق" إذا كانت قيمة عنصر التحكم "عمر" أقل من السن المقرر في رخصة السائق.
• عرض مجموعات مختلفة من السجلات استناداً إلى التحديد. على سبيل المثال، يمكنك التحكم في أي السجلات يتم عرضها في نموذج Customers "العملاء"، استناداً إلى أي من الخيارات تم تحديدها في مجموعة خيارات Customer Type "نوع العميل".
يمكنك تعيين قيمة خاصية استجابة إلي حدث، مثل النقر فوق زر أمر، بواسطة إضافة إجراء SetValue إلي ماكرو أو بواسطة استخدام عبارة تعيين في إجراء Microsoft Visual Basic.
استخدم ماكرو
1. لإنشاء ماكرو، انقر فوق "وحدات الماكرو" أسفل "كائنات"، ثم انقر فوق الزر "جديد" على شريط أدوات إطار قاعدة البيانات.
2. في صف إجراء فارغاً، انقر فوق SetValue في قائمة الإجراءات.
3. قم بتعيين الوسيطة Item إلي المعرف للخاصية التي تريد تعيين قيمتها، ثم قم بتعيين الوسيطة Expression إلي القيمة التي تريد تعيينها إلي الخاصية.
4. انقر فوق حفظ لحفظ الماكرو.
5. انتقل إلي النموذج أو التقرير، افتح صفحة الخصائص للكائن الذي يقوم بتشغيل الماكرو، وقم بتعيين خاصية الحدث إلي اسم الماكرو.
استخدم التعليمات البرمجية لـ Visual Basic
1. لفتح إجراء الحدث للحدث المناسب، قم بفتح النموذج في طريقة العرض "تصميم".
2. قم بعرض صفحة الخصائص للنموذج ثم انقر فوق علامة التبويب "حدث".
3. انقر فوق خاصية حدث للحدث الذي تريد تشغيل الإجراء له.
على سبيل المثال، للاستجابة إلى نقر الماوس على زر أمر، قم بفتح إجراء الحدث للزر "عند النقر".
4. انقر فوق "إنشاء" بجوار مربع الخصائص لعرض مربع الحوار "اختيار المنشئ".
5. انقر نقراً مزدوجاً فوق "منشئ البرامج" لعرض إطار إجراء الحدث.
6. قم بإضافة عبارة التعيين إلي الإجراء بواسطة كتابة المعرف للخاصية التي تريد تعيين قيمتها، وعلامة تساوى (=)، والقيمة التي تريد تعيينها.
7. قم بأحد الإجراءات التالية:
للاشارة إلي خاصية عنصر_التحكم في النموذج الحالي، اكتب الكلمة الأساسية Me متبوعة بعامل التشغيل ! ، واسم عنصر التحكم . (نقطة)، واسم الخاصية. على سبيل المثال، تُعيين العبارة التالية القيمة "خاطئة" إلى الخاصية "مرئي" لعنصر التحكم DateDue في النموذج الحالي
Me![DateDue].Visible = False
للاشارة إلي خاصية عنصر تحكم في نموذج مختلف، اكتب المعرف الكامل لعنصر التحكم. على سبيل المثال، يشير المعرف التالي إلي الخاصية "مرئي" لعنصر التحكم DateDue في النموذج ShipForm "نموذج شحن":
Forms![ShipForm]![DateDue].Visible
مثال على تعيين قيمة لخاصية كاستجابة لحدث
يمكنك تعيين قيمة خاصية استناداً إلى قيمة موجودة في السجل الحالي بواسطة تشغيل ماكرو أو إجراء حدث كاستجابة إلى حدث النموذج الحالي. على سبيل المثال، قد تحتاج إلى إخفاء عنصر التحكم DateDue "تاريخ الاستحقاق" في نموذج Orders "الطلبات" إذا تم دفع المبلغ المستحق للطلبات مسبقاً (إذا كانت قيمة عنصر تحكم Paid "المدفوع" هي Yes "نعم" أو "True" صواب).
لتشغيل ماكرو، قم بتعيين خاصية الحدث عند_الحالي للنموذج إلى اسم الماكرو (HideDateDue) الذي يقوم بتعيين الخاصية مرئي لعنصر تحكم DateDue "تاريخ الاستحقاق" له إلى لا إذا كانت قيمة عنصر التحكم دفع هي "نعم".

1. إذا كانت قيمة عنصر تحكم "المدفوع" هي "نعم" ...
2. ... يقوم الماكرو بتعيين الخاصية مرئي لعنصر التحكم "تاريخ الاستحقاق" إلى لا.
لاستخدام إجراء حدث، أضف تعليمة Microsoft Visual Baic البرمجية التالية إلى إجراء الحدث Form_Current:
If Me![Paid] = True Then Me![DateDue].Visible = False Else Me![DateDue].Visible = True End If
يتبع


