يمكنك استخدام إجراء CancelEvent لإلغاء حدث التي تسببت في تشغيل Accessالماكرو التي تحتوي على هذا الإجراء. اسم الماكرو هو إعداد خاصية حدث مثل BeforeUpdate أو OnOpen أو OnUnload أو OnPrint.
ملاحظة: لا يتوفر إجراء الماكرو CancelEvent في تطبيقات Access على الويب.
الإعداد
لا يحتوي إجراء CancelEvent على أي وسيطات.
ملاحظات
في نموذج ، عادة ما تستخدم إجراء CancelEvent في ماكرو التحقق من الصحة مع خاصية حدث BeforeUpdate . عندما يدخل المستخدم البيانات في عنصر تحكم أو سجل ، يقوم Access بتشغيل الماكرو قبل إضافة البيانات إلى قاعدة البيانات. إذا فشلت البيانات في شروط التحقق من الصحة في الماكرو، فإن إجراء CancelEvent يلغي عملية تحديث قبل بدء تشغيلها.
غالبا ما تستخدم هذا الإجراء مع إجراء MsgBox للإشارة إلى أن البيانات قد فشلت في شروط التحقق من الصحة ولتقديم معلومات مفيدة حول نوع البيانات التي يجب إدخالها.
يمكن إلغاء الأحداث التالية بواسطة إجراء CancelEvent .
Applyfilter |
Dirty |
Mousedown |
BeforeDelConfirm |
إنهاء |
Nodata |
BeforeInsert |
التصفية |
مفتوح |
Beforeupdate |
التنسيق |
طباعة |
Dblclick |
Keypress |
الغاء تحميل |
حذف |
ملاحظة: يمكنك استخدام الإجراء CancelEvent مع الحدث MouseDown فقط لإلغاء الحدث الذي يحدث عند النقر بزر الماوس الأيمن فوق عنصر.
إذا كان إعداد خاصية حدث OnDblClick لعنصر تحكم يحدد ماكرو يحتوي على إجراء CancelEvent ، فإن الإجراء يلغي حدث DblClick .
بالنسبة للأحداث التي يمكن إلغاؤها، يحدث السلوك الافتراضي للحدث (أي ما يفعله Access عادة عند وقوع الحدث) بعد تشغيل الماكرو للحدث. يمكنك هذا من إلغاء السلوك الافتراضي. على سبيل المثال، عند النقر نقرا مزدوجا فوق كلمة تكون نقطة الإدراج عليها في مربع النص ، يحدد Access الكلمة عادة. يمكنك إلغاء هذا السلوك الافتراضي في الماكرو لحدث DblClick وتنفيذ بعض الإجراءات الأخرى، مثل فتح نموذج يحتوي على معلومات حول البيانات في مربع النص. بالنسبة للأحداث التي لا يمكن إلغاؤها، يحدث السلوك الافتراضي قبل تشغيل الماكرو.
ملاحظة: إذا حددت خاصية حدث OnUnload الخاصة بالنموذج ماكرو ينفذ إجراء CancelEvent ، فلن تتمكن من إغلاق النموذج. يجب إما تصحيح الشرط الذي تسبب في تنفيذ إجراء CancelEvent أو فتح الماكرو وحذف إجراء CancelEvent . إذا كان النموذج نموذجا مشروط ، فلن تتمكن من فتح الماكرو.
لتنفيذ إجراء CancelEvent في وحدة Visual Basic for Applications (VBA)، استخدم أسلوب CancelEvent لكائن DoCmd .
مثال
التحقق من صحة البيانات باستخدام ماكرو
يتحقق ماكرو التحقق التالي من الرموز البريدية التي تم إدخالها في نموذج الموردين. يظهر استخدام إجراءات StopMacroوMsgBox و CancelEvent و GoToControl . يتحقق التعبير الشرطي من البلد/المنطقة والرمز البريدي الذي تم إدخاله في سجل في النموذج. إذا لم تكن التعليمات البرمجية البريدية بالتنسيق الصحيح للبلد/المنطقة، فسيعرض الماكرو مربع رسالة ويلغى حفظ السجل. ثم يرجعك إلى عنصر تحكم الرمز البريدي، حيث يمكنك تصحيح الخطأ. يجب إرفاق هذا الماكرو بخاصية BeforeUpdate لنموذج الموردين.
الشرط |
الإجراء |
الوسيطات: إعداد |
تعليق |
IsNull([CountryRegion]) |
StopMacro |
إذا كانت CountryRegion فارغة، فلا يمكن التحقق من صحة التعليمات البرمجية البريدية. |
|
[CountryRegion] في ("فرنسا","إيطاليا","إسبانيا") وLen([الرمز البريدي]) <> 5 |
Msgbox |
الرسالة: يجب أن يكون الرمز البريدي 5 أحرف. Beep: نعم النوع: معلومات العنوان: خطأ في التعليمات البرمجية البريدية |
إذا لم تكن التعليمات البرمجية البريدية مكونة من 5 أحرف، فعرض رسالة. |
... |
Cancelevent |
إلغاء الحدث. |
|
Gotocontrol |
اسم عنصر التحكم: الرمز البريدي |
||
[CountryRegion] في ("أستراليا"،"سنغافورة") وLen([الرمز البريدي]) <> 4 |
Msgbox |
الرسالة: يجب أن يكون الرمز البريدي 4 أحرف. Beep: نعم النوع: معلومات العنوان: خطأ في التعليمات البرمجية البريدية |
إذا لم تكن التعليمات البرمجية البريدية مكونة من 4 أحرف، فعرض رسالة. |
... |
Cancelevent |
إلغاء الحدث. |
|
Gotocontrol |
اسم عنصر التحكم: الرمز البريدي |
||
([CountryRegion] = "Canada") و ([الرمز البريدي] لا يحب"[A-Z][0-9][A-Z] [0-9][A-Z][0-9]") |
Msgbox |
الرسالة: التعليمات البرمجية البريدية غير صحيحة. مثال على التعليمات البرمجية الكندية: H1J 1C3 Beep: نعم النوع: معلومات العنوان: خطأ في التعليمات البرمجية البريدية |
إذا لم تكن التعليمات البرمجية البريدية صحيحة بالنسبة إلى كندا، فعرض رسالة. (مثال على التعليمات البرمجية الكندية: H1J 1C3) |
... |
Cancelevent |
إلغاء الحدث. |