يمكنك استخدام إجراء الماكرو OnError في Access لتحديد ما يجب أن يحدث عند حدوث خطأ في ماكرو.
ملاحظة: لا يتوفر إجراء الماكرو OnError في تطبيقات Access على الويب.
الإعداد
يحتوي إجراء الماكرو OnError على الوسيطات التالية.
وسيطة الإجراء |
الوصف |
||||||||
الانتقال إلى |
حدد السلوك العام الذي يجب أن يحدث عند مواجهة خطأ. انقر فوق سهم القائمة المنسدلة ثم انقر فوق أحد الإعدادات التالية:
|
||||||||
اسم الماكرو |
إذا تم تعيين الوسيطة Go to إلىMacro Name، فاكتب اسم الماكرو الفرعي الذي سيتم استخدامه لمعالجة الأخطاء. يجب أن يتطابق الاسم الذي تكتبه مع اسم الماكرو الفرعي في الماكرو الحالي؛ لا يمكنك إدخال اسم كائن ماكرو مختلف. في المثال أدناه، يتم تضمين الماكرو الفرعي ErrorHandler في نفس كائن الماكرو مثل إجراء الماكرو OnError . يجب ترك هذه الوسيطة فارغة إذا تم تعيين الوسيطة Go to إلى Next أو Fail. |
ملاحظات
-
عادة ما يتم وضع إجراء الماكرو OnError في بداية الماكرو، ولكن يمكنك أيضا وضع الإجراء لاحقا في الماكرو. ستصبح القواعد التي أنشأها الإجراء سارية المفعول كلما تم تشغيل الإجراء.
-
إذا قمت بتعيين الوسيطة Go to إلىFail، فسيتصرف Access بنفس الطريقة التي يتصرف بها إذا لم يكن هناك إجراء OnError في الماكرو. أي أنه إذا تمت مصادفة خطأ، يقوم Access بإيقاف الماكرو ويعرض رسالة خطأ قياسية. يتمثل الاستخدام الرئيسي لإعداد Fail في إيقاف تشغيل أي معالجة أخطاء أنشأتها سابقا في ماكرو.
مثال
يوضح الماكرو التالي استخدام إجراء الماكرو OnError . في هذا المثال، يحدد الإجراء OnError أن Access يقوم بتشغيل الماكرو الفرعي لمعالجة الأخطاء المخصصة الذي يُسمى ErrorHandler عند حدوث خطأ ما. إذا حدث خطأ في أي من الإجراءات التالية، ينتقل Access إلى الماكرو الفرعي ErrorHandler. يعرض الماكرو الفرعي ErrorHandler مربع رسالة يُشير إلى العنصر MacroError لعرض معلومات حول الخطأ.
اسم الماكرو الفرعي |
الإجراء |
الوسيطات |
Onerror |
انتقل إلى: اسم الماكرو اسم الماكرو: ErrorHandler |
|
[الإجراء 2] |
||
... |
||
[الإجراء n] |
||
ErrorHandler |
Messagebox |
الرسالة: ="Error # " & [MacroError]. [رقم] & " على " & [MacroError]. [ActionName] & "الإجراء". Beep: نعم النوع: بلا العنوان: حدث خطأ |
فيما يلي لقطة شاشة لمصمم ماكرو Access (إصدار 2010 من Access والإصدارات الأحدث) مع المثال السابق. في هذه الحالة، يؤدي التعبير الموجود في الإجراء SetLocalVar إلى ظهور خطأ ما لأنه يحاول قسمة رقم على صفر. ينتقل Access إلى الأسفل وصولاً إلى الماكرو الفرعي الذي يُسمى ErrorHandler ويعرض معلومات الخطأ في مربع رسالة.