تشغيل ماكرو أو إجراء أو دالة 

 

في هذه الأسطر سأتكلم عن الفرق بين الأحداث في الوحدات النمطية والأحداث في الخصائص لأن بعض المبتدئين يلخبطون بينهم ، والأمر الآخر حتى يستفاد منها أكثر .

إذا قيل -وهذي خذوها قاعدة - ضع هذا الكود أو هذا السطر في حدث كذا وكذا فالمقصود أن تضع ذلك الكود أو السطر في الوحدة النمطية للنموذج في الحدث المذكور وليس أن تضعه في الخصائص .

 

ولمعرفة الفرق بينهما افتح النموذج في عرض التصميم أظهر صفحة الخصائص ثم أظهر صفحة التبويب حدث الآن الأحداث الظاهرة يمكن أن تضع فيها استدعاء لدالة عامة أو إجراء عام أو ماكرو ولكن لايصح أن تضع فيها اسطر كود فهذا غلط بالتأكيد .

 

إذن كيف نضع الأسطر في الوحدة النمطية الخاصة بالنموذج ؟

جواب : لنفرض أنك تريد تكبير النموذج للحد الأقصى عند فتحه وتريد أن تضع هذا السطر في حدث عند الفتح :

DoCmd.Maximize

فعند وضع المؤشر داخل المربع المجاور لكلمة عند الفتح يظهر زرين على اليسار الأول عليه سهم رأسه للأسفل والثاني عليه ثلاث نقط .

الأول اللي عليه السهم لسدل قائمة للإختيار منها كما في الصورة التالية :

الذي يظهر في القائمة هي عبارة :

[إجراء حدث]

ثم تحتها كل الماكروات في القاعدة .

طبعا هنا نختار إما إجراء حدث وهنا سيكون الحدث في الوحدة النمطية الخاصة بالنموذج أو ماكرو وبقي الأمر الثالث وهو استدعاء دالة عامة وإليك شرح لهذه الطرق .

 

أولا : أجراء حدث

عند إختيارنا لـ [إجراء حدث] فهذا يعني أن الإجراء سيكون في الوحدة النمطية التابعة للنموذج ، وبهذه المناسبة الوحدات النمطية بالنسبة لمكانها تنقسم إلى قسمين :

1- الوحدة النمطية العامة وهي التي تظهر في قسم وحدات نمطية في إطار قاعدة البيانات .

2- الوحدات النمطية الخاصة بالنماذج أو التقارير وهي لاتظهر في إطار قاعدة البيانات ولكن يمكن الوصول إليها عن طريق نقر قائمة عرض ثم تعليمات برمجية .

بعد اختيارك لـ [إجراء حدث] من القائمة انقر المربع الأيسر ذو الثلاث نقط ، وسيظهر إطار محرر الوحدات النمطية لـ برامج الأوفس .

في مثالنا السابق بعد فتح إطار محرر الوحدات النمطية سيظهر المؤشر بين سطرين كالتالي :

Private Sub Form_Open(Cancel As Integer)

End Sub

وسيكون المؤشر بين هذين السطرين لكتابة أسطر الكود ، نضع كما في مثال المذكور سطر الكود ليكون كالتالي :

Private Sub Form_Open(Cancel As Integer)
DoCmd.Maximize
End Sub

الآن الكود جاهز للعمل .

 

ثانياً : تشغيل ماكرو

لتشغيل ماكرو لأداء نفس العمل ، أنشئ ماكرو جديد وفي عمود إجراء اختر Maximize ثم احفظ الماكرو باسم تكبير مثلاً ، والآن في الخصائص في حدث عند الفتح للنموذج اسدل القائمة تجد هذا الماكرو المسمى تكبير اختره من القائمة .

 

ثالثاً : استدعاء دالة عامة أو إجراء عام

يمكنك أن تستدعي دالة أو إجراء عام بطريقة تشبه طريقة الماكرو .

أولاً: افتح أي وحدة نمطية عامة أو أنشئ جديدة .

ثانياً : من قائمة Insert اختر Procedure انظر الصورة :

وعند ظهور مربع الحوار :

اكتب في الاسم max  مثلاً أو أي اسم تحب ثم اختر في النوع  Type دالة Function وفي الأسفل في المجال Scope اتركه على عام Public .

الآن سيظهر الكود بالشكل التالي :

Public Function max()
DoCmd.Maximize
End Function

 

ثالثاً : افتح النموذج في عرض التصميم وأظهر الخصائص وفي صفحة التبويب أحداث في حدث عند الفتح اكتب :

=max

 

ونفس الطريقة تستخدم مع الإجراء العام فقط اختر في مربع الحوار السابق Sub بدلاً من Function .

للمزيد عن الإجراءات والدوال انظر الوحدات النمطية .