Applies ToAccess لـ Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

في هذه المقالة

ترتيب الأحداث لعناصر التحكم في النماذج

تحدث الأحداث لعناصر التحكم في النماذج عندما تنقل تركيز إلى عنصر تحكم، وعندما تقوم بتغيير البيانات وتحديثها في عنصر تحكم.

ملاحظة: يعرض Microsoft Office Access أسماء الحدث بشكل مختلف قليلاً في "محرر Visual Basic" عن طريقة عرضها في صفحة الخصائص ومنشئ الماكرو. على سبيل المثال، الحدث المسمى بـ ‏On Got Focus‏ في صفحة خصائص النموذج وفي "منشئ الماكرو" يسمى بـ GotFocus في "محرر Visual Basic". تستخدم الأمثلة في هذه المقالة تنسيق Visual Basic for Applications‏ (VBA) لأسماء الحدث.

نقل التركيز إلى عنصر تحكم

عند نقل التركيز إلى عنصر تحكم في نموذج (على سبيل المثال، من خلال فتح نموذج يحتوي على عنصر تحكم نشط واحد أو أكثر، أو من خلال نقل التركيز إلى عنصر تحكم آخر في النموذج نفسه)، يقع الحدثان Enter وGotFocus في الترتيب التالي:

أدخل سهم GotFocus

عند فتح نموذج، يقع الحدثان Enter وGotFocus بعد الأحداث المقترنة بفتح النموذج (على سبيل المثال فتح وتنشيط وحالي)، كما يلي:

فتح (نموذج) سهمتنشيط (نموذج) سهمالحالي (النموذج) سهمإدخال (عنصر تحكم) سهمGotFocus (عنصر تحكم)

عندما ينتقل التركيز من عنصر تحكم في نموذج (على سبيل المثال، عند إغلاق نموذج يحتوي على عنصر تحكم نشط واحد أو أكثر، أو عند الانتقال إلى عنصر تحكم آخر في النموذج نفسه)، يقع الحدثان Exit وLostFocus بالترتيب التالي:

إنهاء سهم LostFocus

عند إغلاق نموذج، يقع الحدثان Exit وLostFocus قبل الأحداث المقترنة بإغلاق النموذج (مثل تحميل وإلغاء تنشيط وإغلاق)، كما يلي:

إنهاء (عنصر تحكم) سهمLostFocus (عنصر تحكم) سهمإلغاء التحميل (نموذج) سهمإلغاء تنشيط (نموذج) سهمإغلاق (نموذج)

تغيير البيانات وتحديثها في عنصر تحكم

عند إدخال البيانات أو تغييرها في عنصر تحكم في نموذج ما ثم نقل التركيز إلى عنصر تحكم آخر، تقع الأحداث BeforeUpdate وAfterUpdate:

BeforeUpdate سهم Afte rUpdate

يقع الحدثان Exit وLostFocus لعنصر تحكم تتغير قيمته بعد الحدثين BeforeUpdate وAfterUpdate:

BeforeUpdate سهم AfterUpdate سهم Exit سهم LostFocus

عندما تقوم بتغيير النص في مربع نص أو في مقطع مربع النص من مربع تحرير وسرد، يقع الحدث Change. يقع هذا الحدث عندما يتم تغيير محتويات عنصر التحكم، ولكن قبل نقل التركيز إلى سجل أو عنصر تحكم مختلف (وذلك قبل وقوع الحدثين BeforeUpdate وAfterUpdate). يحدث التسلسل التالي من الأحداث لكل مفتاح تضغط عليه في مربع نص أو في مقطع مربع النص من مربع تحرير وسرد:

KeyDown سهم KeyPress سهم القذرة سهم تغيير سهم KeyUp

يقع الحدث NotInList بعد إدخال قيمة في مربع تحرير وسرد لم يتم العثور عليها في قائمة مربع التحرير والسرد، ثم تتم محاولة نقل التركيز إلى سجل أو عنصر تحكم آخر. يقع الحدث NotInList بعد أحداث لوحة المفاتيح وأحداث Change لمربع التحرير والسرد، ولكن قبل أحداث أي عنصر تحكم آخر أو النموذج. إذا تم تعيين الخاصية LimitToList لمربع التحرير والسرد إلى Yes، يقع الحدث Error للنموذج مباشرةً بعد الحدث NotInList:

خطأ0 تغيير سهمغير سهمKeyDown #x8 سهمKeyPressسهم

أعلى الصفحة

ترتيب الأحداث للسجلات في النماذج

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

نقل التركيز إلى السجلات وتحديث البيانات في السجلات

عند نقل التركيز إلى سجل موجود في نموذج ما، أدخل البيانات الموجودة في السجل أو قم بتغييرها، ثم انقل التركيز إلى سجل آخر، يحدث التسلسل التالي من الأحداث للنموذج:

الحالي (النموذج) سهمBeforeUpdate (نموذج) سهمAfterUpdate (نموذج) سهمالحالي (نموذج)

عندما تغادر السجل الذي تم تغيير بياناته، ولكن قبل دخول السجل التالي، يقع الحدثان Exit وLostFocus لعنصر التحكم الذي يحتوي على التركيز. تقع هذه الأحداث بعد الحدثين BeforeUpdate وAfterUpdate للنموذج، كما يلي:

BeforeUpdate (نموذج) سهمAfterUpdate (نموذج) سهمExit (control) سهمLostFocus (عنصر تحكم) سهمCurrent (نموذج)

أثناء نقل التركيز بين عناصر التحكم الموجودة في نموذج ما، تقع الأحداث لكل عنصر تحكم. على سبيل المثال، يحدث التسلسل التالي من الأحداث عند إجراء ما يلي:

  • فتح نموذج وتغيير البيانات في عنصر تحكم:

    الحالي (النموذج) سهمإدخال (عنصر تحكم) سهمGotFocus (عنصر تحكم) سهمBeforeUpdate (عنصر تحكم) سهمAfterUpdate (عنصر تحكم)

  • نقل التركيز إلى عنصر تحكم آخر:

    إنهاء (control1) سهمLostFocus (control1) سهمEnter (control2) سهمGotFocus (control2)

  • نقل التركيز إلى سجل آخر:

    BeforeUpdate (نموذج) سهمAfterUpdate (نموذج) سهمExit (control2) سهمLostFocus (control2) سهمCurrent (form)

حذف السجلات

عندما تقوم بحذف سجل، تقع الأحداث التالية للنموذج، ويعرض Microsoft Office Access مربع حوار يطالبك بتأكيد الحذف:

حذف سهم BeforeDelConfirm سهم AfterDelConfirm

إذا قمت بإلغاء الحدث Delete، فلا يقع الحدثان BeforeDelConfirm وAfterDelConfirm ولا يتم عرض مربع الحوار.

إنشاء سجل جديد

عند نقل التركيز إلى سجل (فارغ) جديد في نموذج ما ثم إنشاء سجل جديد عن طريق كتابة البيانات في عنصر تحكم، يحدث التسلسل التالي من الأحداث:

الحالي (النموذج) سهمإدخال (عنصر تحكم) سهمGotFocus (عنصر تحكم) سهمBeforeInsert (نموذج) سهمAfterInsert (نموذج)

يتم تشغيل الحدث BeforeInsert (النموذج) بمجرد بدء الكتابة في عنصر التحكم. يتم تشغيل الحدث AfterInsert (النموذج) بعد مغادرة السجل.

يقع الحدثان BeforeUpdate وAfterUpdate لعناصر التحكم الموجودة في النموذج وللسجل الجديد بعد الحدث BeforeInsert وقبل الحدث AfterInsert.

أعلى الصفحة

ترتيب الأحداث للنماذج والنماذج الفرعية

تقع الأحداث للنماذج عند فتح نموذج أو إغلاقه أو التنقل بين النماذج أو العمل على البيانات في نموذج أو نموذج فرعي.

فتح نموذج وإغلاقه

عند فتح نموذج، يحدث التسلسل التالي من الأحداث للنموذج:

فتح سهم تحميل سهم تغيير حجم سهم تنشيط سهم الحالي

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

عند إغلاق نموذج، يحدث التسلسل التالي من الأحداث للنموذج:

إلغاء تحميل سهم إلغاء تنشيط سهم Close

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

التنقل بين النماذج

عند التبديل بين نموذجين مفتوحين، يقع الحدث إلغاء تنشيط للنموذج الأول، والحدث تنشيط للنموذج الثاني:

إلغاء تنشيط (form1) سهمActivate (form2)

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

ملاحظة:  لا يقع الحدث فتح إذا قمت بنقل التركيز إلى نموذج مفتوح بالفعل، حتى إذا قمت بنقل التركيز إلى ذلك النموذج من خلال تنفيذ الإجراء OpenForm.

العمل على البيانات في نموذج ما

تقع أحداث النماذج وعناصر التحكم عند التنقل بين السجلات في النموذج وعند تغيير البيانات. على سبيل المثال، عند فتح نموذج لأول مرة، يحدث التسلسل التالي من الأحداث:

فتح (نموذج) سهمتحميل (نموذج) سهمتغيير الحجم (نموذج) سهمتنشيط (نموذج) سهمالحالي (النموذج) سهمإدخال (عنصر تحكم)0 GotFocus (عنصر تحكم)

وبالمثل، عند إغلاق نموذج، يحدث التسلسل التالي من الأحداث:

إنهاء (عنصر تحكم) سهمLostFocus (عنصر تحكم) سهمإلغاء التحميل (نموذج) سهمإلغاء تنشيط (نموذج) سهمإغلاق (نموذج)

إذا قمت بتغيير البيانات في عنصر تحكم، يقع الحدثان BeforeUpdate وAfterUpdate لكل من عنصر التحكم والنموذج قبل الحدث Exit لعنصر التحكم.

العمل باستخدام النماذج الفرعية

عند فتح نموذج يحتوي على نموذج فرعي، يتم تحميل النموذج الفرعي وسجلاته قبل النموذج الرئيسي. وبالتالي، تقع أحداث النموذج الفرعي وعناصر التحكم الخاصة به (مثل Open وCurrent وEnter وGotFocus) قبل أحداث النموذج. على الرغم من ذلك، لا يقع الحدث تنشيط للنماذج الفرعية. وبالتالي، يؤدي فتح نموذج رئيسي إلى تشغيل حدث تنشيط للنموذج الرئيسي فقط.

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

  1. أحداث عناصر تحكم النموذج الفرعي (مثل Exit وLostFocus)

  2. أحداث عناصر تحكم النموذج (بما في ذلك عنصر تحكم النموذج فرعي)

  3. أحداث النموذج (مثل إلغاء التنشيط وإغلاق)

  4. أحداث النموذج الفرعي

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

أعلى الصفحة

ترتيب الأحداث لضغطات المفاتيح ونقرات الماوس

تقع أحداث لوحة المفاتيح للنماذج وعناصر التحكم عند الضغط على المفاتيح أو إرسال ضغطات المفاتيح في حين احتواء النموذج أو عنصر التحكم على تركيز. تقع أحداث الماوس للنماذج ومقاطع النماذج وعناصر التحكم في النماذج عند النقر فوق أزرار الماوس أثناء وضع مؤشر الماوس على أحد النماذج أو المقاطع أو عناصر التحكم. تقع أيضاً أحداث الماوس عند تحريك مؤشر الماوس فوق أحد النماذج أو المقاطع أو عناصر التحكم.

أحداث لوحة المفاتيح

عند الضغط على مفتاح وتحريره بينما يكون التركيز على عنصر تحكم في نموذج ما (أو استخدام الإجراء SendKeys أو بيان لإرسال ضغطة مفتاح)، يحدث التسلسل التالي من الأحداث:

KeyDown سهم KeyPress سهم KeyUp

عند الضغط على مفتاح وتحريره أو إرسال ضغطة مفتاح في مجموعة أحرف ANSI، تقع الأحداثKeyDown وKeyPress وKeyUp جميعها. إذا قمت بالضغط باستمرار على مفتاح ANSI، يتبادل الحدثان KeyDown وKeyPress بشكل متكرر (KeyDown وKeyPress وKeyDown وKeyPress وهكذا) حتى تقوم بتحرير المفتاح؛ ثم يقع الحدث KeyUp.

إذا قمت بالضغط على مفتاح غير ANSI وتحريره، يقع الحدثان KeyDown وKeyUp. إذا قمت بالضغط باستمرار على مفتاح غير ANSI، يقع الحدث KeyDown بشكل متكرر حتى تقوم بتحرير المفتاح، ثم يقع الحدث KeyUp.

إذا كان الضغط على أحد المفاتيح يؤدي إلى تشغيل حدث آخر لعنصر تحكم، يقع هذا الحدث بعد الحدث KeyPress لكن قبل الحدث KeyUp. على سبيل المثال، إذا قامت ضغطة مفتاح بتغيير النص في مربع نص، التي تقوم بتشغيل حدث Change، يحدث التسلسل التالي من الأحداث:

KeyDown سهم KeyPress سهم تغيير سهم KeyUp

إذا كانت أحد ضغطات المفاتيح تؤدي إلى انتقال التركيز من عنصر تحكم واحد إلى عنصر تحكم آخر، يقع الحدث KeyDown لعنصر التحكم الأول، بينما يقع الحدثان KeyPress وKeyUp لعنصر التحكم الثاني. على سبيل المثال، إذا قمت بتغيير البيانات في عنصر تحكم ثم قمت بالضغط على المفتاح TAB للانتقال إلى عنصر التحكم التالي، يحدث التسلسل التالي من الأحداث:

  • عنصر التحكم الأول:

    KeyDown سهم BeforeUpdate سهم AfterUpdate سهم Exit سهم LostFocus

  • عنصر التحكم الثاني:

    أدخل سهم GotFocus سهم KeyPress سهم KeyUp

أحداث الماوس

عند النقر فوق أحد أزرار الماوس وتحريره أثناء وضع مؤشر الماوس على عنصر تحكم في نموذج ما، يحدث التسلسل التالي من الأحداث لعنصر التحكم:

النقر سهمMouseDown سهم MouseUp

إذا كان التركيز على عنصر تحكم ما وقمت بالنقر فوق عنصر تحكم آخر لنقل التركيز إلى عنصر التحكم الثاني هذا، يحدث التسلسل التالي من الأحداث:

  • عنصر التحكم الأول:

    إنهاء سهم LostFocus

  • عنصر التحكم الثاني:

    أدخل سهم GotFocus سهم MouseDown سهم MouseUp سهم Click

إذا انتقلت إلى سجل آخر ثم قمت بالنقر فوق عنصر تحكم ما، يقع الحدث Current للنموذج أيضاً قبل الحدث Enter لعنصر التحكم.

يؤدي النقر المزدوج فوق أحد عناصر التحكم إلى وقوع الحدثين Click وDblClick. على سبيل المثال، عندما تنقر نقراً مزدوجاً فوق أحد عناصر التحكم فضلاً عن أحد أزرار الأوامر، يحدث التسلسل التالي من الأحداث لعنصر التحكم:

MouseD الخاص سهم MouseUp سهم النقر سهم DblClick سهم MouseUp

عندما تنقر نقراً مزدوجاً فوق أحد أزرار الأوامر، يحدث التسلسل السابق من الأحداث، متبوعاً بحدث Click ثانٍ.

يقع حدث MouseMove لأحد النماذج أو المقاطع أو عناصر التحكم عند تحريك مؤشر الماوس فوق النموذج أو المقطع أو عنصر التحكم. هذا الحدث مستقل عن أحداث الماوس الأخرى.

أعلى الصفحة

ترتيب الأحداث للتقارير ومقاطع التقارير

تقع الأحداث للتقارير ومقاطع التقارير عند فتح تقرير لطباعته أو معاينته أو عند إغلاق تقرير.

الأحداث للتقارير

عندما تفتح تقرير لطباعته أو معاينته ثم لاحقاً تقوم بإغلاق التقرير أو الانتقال إلى علامة تبويب عنصر آخر في Access، يحدث التسلسل التالي من الأحداث للتقرير:

فتح سهم تنشيط سهم إغلاق سهم إلغاء التنشيط

عند التبديل بين تقريرين مفتوحين، يقع الحدث إلغاء تنشيط للتقرير الأول، والحدث تنشيط للتقرير الثاني:

إلغاء تنشيط (report1) سهمActivate (report2)

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

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

الأحداث لمقاطع التقارير

عندما تقوم بطباعة تقرير أو معاينته، يقع الحدثان تنسيق وطباعة لمقاطع التقارير بعد الحدثين فتح وتنشيط للتقرير وقبل أحداث التقرير إغلاق أو إلغاء التنشيط:

فتح (تقرير) سهمتنشيط (تقرير) تنسيق سهم(قسم التقرير) سهمطباعة (قسم التقرير) سهمإغلاق (تقرير) سهمإلغاء تنشيط (تقرير)

الأمان    يمكنك استخدام طريقة عرض التقرير لتمكين تصفية المستخدم للتقارير. ولكن على عكس معاينة الطباعة، لا يحدث الحدثان تنسيقوطباعة في أي قسم في طريقة عرض التقرير. ينطبق هذا أيضا على نتائج دالة VBA والإجراءات المعرفة من قبل المستخدم التي يتم عرضها في عناصر التحكم (مثل التسميات التوضيحية وحالة العرض والتنسيق الشرطي وتغيير حجم عناصر التحكم وما إلى ذلك) داخل تلك الأحداث. لذلك، لا تستخدم التعليمات البرمجية في هذا الحدث لتنسيق البيانات السرية أو إخفائها أو طباعتها، والتي قد تصبح مكشوفة. نوصي بتصفية البيانات مسبقا أو تعطيل معاينة التقرير عن طريق تعيين الخاصية AllowReportView إلى لا.

بالإضافة إلى ذلك، قد تقع الأحداث التالية أثناء أو بعد التنسيق لكن قبل الحدث طباعة:

  • يقع الحدث التراجع عند رجوع Access إلى مقطع سابق أثناء تنسيق التقرير.

  • يقع الحدث NoData إذا لم يكن هناك أي سجلات معروضة بواسطة التقرير.

  • يقع الحدث صفحة بعد التنسيق ولكن قبل الطباعة. يمكنك استخدام هذا الحدث لتخصيص مظهر التقرير المطبوع.

أعلى الصفحة

هل تحتاج إلى مزيد من المساعدة؟

الخروج من الخيارات إضافية؟

استكشف مزايا الاشتراك، واستعرض الدورات التدريبية، وتعرف على كيفية تأمين جهازك، والمزيد.

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