الأحد، 16 أكتوبر، 2016

الأحداث وإجراءات الأحداث

الأحداث وإجراءات الأحداث
ما هو إجراء الحدث؟
إجراء الحدث هو إجراء يتم تشغيله استجابة لبدء تشغيل حدث من قبل المستخدم أومن قبل
ما هو الحدث؟
الحدث هو حدث محدد يقع في  أو مع  كائن معين. يمكن أن يستجيب Microsoft Access لأحداث مختلفة: نقرات الماوس وتغييرات في بيانات وفتح نماذج أو إغلاقها وأشياء أخرى كثيرة، يمكنك رؤيتها عند عرض Event من خصائص أي كائن في قاعدة البيانات.
  • إجراءات الدالة Function Procedure:
الإجراءات غالباً ما تسمى دالة تُرجع قيمة، مثل نتيجة حساب. تتضمن Microsoft Visual Basic العديد من الدالات المضمنة يمكنك إنشاء دالة باستخدام العبارة Function وإنهاؤها بالعبارة End Function. كما يمكنك استخدام الدوال المبنية مسبقاً في اللغة، على سبيل المثال، ترجع الدالة Now التاريخ والوقت الحالي.
نتيجة لأن الدالة تقوم بإرجاع قيم، يمكنك استخدامها في أي تعبيرات برمجية في العديد من الأماكن في Microsoft Access أو في Module البرمجة لـ Visual Basic أو في العديد من إعدادات الخصائص أو في تعبير المعايير في عامل تصفية أو استعلام.
مثال:

يُرجع المثال التالي لإجراء دالة
FirstOfNextMonth تاريخ اليوم الأول من الشهر التالي للتاريخ الحالي:
Function FirstOfNextMonth( )
FirstOfNextMonth = DateSerial(Year(Now), Month(Now) + 1, 1)
End Function
تحسب هذه الدالة النتيجة باستخدام الدالات DateSerial وYear وNow وMonth الـمبنية مسبقاً فيVBA.
بعد إنشاء هذه الدالة، يمكنك استخدامها في التعبير في أي مكان في Microsoft Access.
 على سبيل المثال، يمكنك تحديد أن يعرض مربع النص اليوم الأول من الشهر بعد التاريخ الحالي كقيمة افتراضية للمربع بإعداد الخاصية قيمة افتراضية الخاصة بعنصر تحكم مربع نص للتعبير التالي في صفحة الخاصية:
=FirstOfNextMonth( ) 
ملاحظة:

لاستخدام أي دالة في الإعداد لخاصية، يجب أن تكون الدالة موجودة ومعرفة في الوحدة النمطية للنموذج
Form Module أو للتقرير Report Module أو في الوحدة النمطية القياسية Standard Module.
لا يمكنك استخدام دالة عامة غير معرفة في فئة الوحدة النمطية Class Module كإعداد لخاصية نموذج أو تقرير.

أمثلة استخدام إجراء الحدث كاستجابة لحدوث هذا الحدث
في البداية لابد أن تعلم إنك عندما تنشئ إجراء حدث لأحد الكائنات، يضيف Microsoft Access قالب إجراء حدث باسم الحدث والكائن إلى الوحدة النمطية الخاصة بالنموذج أو التقرير. كل ما تحتاج فعله هو إضافة تعليمة برمجية تستجيب بالطريقة التي تريدها إلى الإجراء الذي تريده عندما يقع الحدث في هذا النموذج أو التقرير.
والآن إلى التطبيق العملي
المثال الأول: الإجراء الفرعي Sub Procedure:
والآن، لنطبق المثال الأول
افترض أننا نريد فتح نموذج "بيانات الأعضاء" عندما يُفتح نموذج "إجمالي الأعضاء من كل دولة" – أي أن هناك نموذجين يجب بنائهما في قاعدة بيانات ، لعمل ذلك اتبع الخطوات التالية:
1.     من خصائص نموذج "إجمالي الأعضاء من كل دولة" اختر تبويب Event.
2.     عند الحدث On Load قف بالماوس، ستظهر لك قائمة منسدلة بها خيار واحد فقط ألا وهو: Event Procedure، قم بتحديده.
3.     اضغط المربع الذي يحوي على ثلاث نقاط.
4.     ستفتح لك نافذة VBA وهي نافذة الوحدة النمطية التي يخصصها الـAccess لكل نموذج، وستجد أنها تحوي على تعريف لبداية الحدث ونهايته على النحو التالي:
Private Sub Form_Load( )

End Sub
5.قم بإضافة السطر الذي يحوي على أمر فتح نموذج بيانات الأعضاء
6. الآن، أغلق نافذة VBA وقم بحفظ التغييرات التي أجريناها على نموذج "إجمالي الأعضاء من كل دولة" ثم جرب عمل الإجراء الذي كتبناه، افتح النموذج، ستجد أنه بمجرد حدوث Load له سيتم تنفيذ إجراءنا وسيظهر لك نموذج "بيانات الأعضاء"،

أين يتم تعريف أو كتابة الدالة؟
يمكنك تعريف الدالة بصورة عامة في الوحدة النمطية القياسية العامة Standard Module، أو يمكنك تعريفها في الوحدة النمطية الخاصة للنموذج Form Module أو للتقرير Report Module. تذكر أنه لا يمكنك استخدام دالة عامة غير معرفة في فئة الوحدة النمطية Class Module كإعداد لخاصية في نموذج أو تقرير.
سنستخدم الطريقة العامة لتعريف هذه الدالة وسنستخدم أبسط طريقة لإسناد القيمة التي ترجعها إلى نموذجنا، كما يلي:
أولا: تعريف الدالة:
1.     افتح أي قاعدة بيانات موجودة لديك، ثم حدد أي Form موجود فيها، ثم اذهب إلى قائمة عرض View ثم إلى code
أو يمكنك أن تقوم مباشرة بالضغط على رمز code على شريط الأدوات Database
1.     ستفتح لك نافذة VBA قم بكتابة الدالة التالية فيها:
Function FirstOfNextMonth( )
FirstOfNextMonth = DateSerial(Year(Now), Month(Now) + 1, 1)
End Function
2.     أغلق نافذة VBA.



ثانياً: ربط الدالة بالنموذج:
1.     قم بإنشاء نموذج جديد في عرض التصميم Design View.
2.     قم بإضافة أداة مربع نص Box Text إليه.
3.     غيّر عنوان مربع النص إلى "التاريخ المفترض للتخرج من الجامعة" أو أي عنوان آخر.
4.     من خصائص مربع النص اذهب إلى تبويب Data ثم أضف الكود التالي إلى خاصية "قيمة افتراضية Default Value
3.     ملاحظات:
1.     لاختبار التعبيرات البرمجية التي تكتبها في أي إجراء مباشرة في نافذة Microsoft Visual Basic أو VBA، يمكنك إظهار نافذة الترجمة الفورية Immediate window من قائمة عرض View أو بالضغط على Ctrl+G. وإليك طريقة التعامل معها:
1- اكتب فيها علامة الاستفهام (؟) ثم اكتب التعبير الذي تريد اختبار صحته، ثم اضغط
Enter.
2- ستعيد لك قيمة التعبير أو الدوال التي استخدمتها.



ليست هناك تعليقات:

إرسال تعليق