Одна дія, наприклад переміщення з одного елемента керування на об’єкті на інший елемент керування, може викликати кілька різних подій, які відбуваються в певній послідовності. Знати, коли та в якому порядку події відбуваються, важливо, оскільки від цих даних залежить, коли та як будуть запускатися макроси або процедури подій. Наприклад, якщо є дві процедури подій, які мають виконуватися в певному порядку, потрібно переконатися, що події, з якими вони пов’язані, відбуватимуться в такому ж порядку.

У цій статті

Порядок подій для елементів керування у формах

Події для елементів керування у формах відбуваються, коли фокус переміщується на елемент керування, а також коли змінюються й оновлюються дані в елементі керування.

Примітка.: Програма Microsoft Office Access відображає імена подій дещо по-різному в редакторі Visual Basic у вікні властивостей і конструкторі макросів. Наприклад, подія, що має ім’я On Got Focus у вікні властивостей форми та конструкторі макросів, у редакторі Visual Basic називається GotFocus. У прикладах у цій статті для назв подій використовується формат Visual Basic for Applications (VBA).

Переміщення фокуса на елемент керування

Коли фокус переміщується на елемент керування у формі (наприклад, коли відкривається форма, яка містить один або кілька активних елементів керування, або фокус переміщується на інший елемент керування в тій же формі), події Enter та GotFocus відбудуться в такому порядку:

Перейти до стрілка gofocus

Коли відкривається форма, події Enter та GotFocus відбуваються після подій, пов’язаних із відкриттям форми (наприклад, Open, Activate і Current), у такому порядку:

Відкрити (форма) стрілкаактивувати (форма) стрілкапоточна (форма) стрілкавводу (елемента керування) стрілкаGotFocus (елемент керування)

Коли фокус переміщується з елемента керування у формі (наприклад, коли закривається форма, яка містить один або кілька активних елементів керування, або фокус переміщується на інший елемент керування в тій же формі), події Exit і LostFocus відбудуться в такому порядку:

Вихід стрілка lostfocus

Коли закривається форма, події Exit і LostFocus відбуваються перед подіями, пов’язаними із закриттям форми (наприклад, Unload, Deactivate і Close), у такому порядку:

Вихід (елемент керування) стрілкаlostfocus (елемент керування) стрілкавивантаження (форма) стрілкадеактивування (форма) стрілказакрити (форма)

Змінення й оновлення даних в елементі керування

Якщо ввести або змінити дані в елементі керування у формі, а потім перемістити фокус на інший елемент керування, відбудуться події BeforeUpdate і AfterUpdate:

BeforeUpdate стрілка afte rupdate

Події Exit і LostFocus для елемента керування, значення якого змінюється після подій BeforeUpdate і AfterUpdate:

BeforeUpdate стрілка Післяоновлення стрілка вихід стрілка lostfocus

Коли текст у текстовому полі або в розділі текстового поля в полі зі списком змінюється, відбувається подія Change. Ця подія відбувається щоразу, коли змінюється вміст елемента керування, але до того, як фокус переміщується на інший елемент керування або запис (і, таким чином, до подій BeforeUpdate і AfterUpdate). Для кожної клавіші, яку натискають у текстовому полі або в розділі текстового поля в полі зі списком, відбувається така послідовність подій:

Натискання клавіші стрілканатискання клавіші стрілкабрудних стрілказмінення стрілкаKeyUp

Подія NotInList відбувається після того, як у полі зі списком вводиться значення, якого немає в списку поля зі списком, і наступної спроби перемістити фокус на інший елемент керування або запис. Подія NotInList відбувається після подій клавіатури та події Change для поля зі списком, але до того, як настануть події для будь-якого іншого елемента керування або форми. Якщо властивість поля зі списком LimitToList має значення Yes, подія Error для форми настає безпосередньо відразу після події NotInList:

Натискання клавіші стрілканатискання клавіші стрілкаDirty стрілказмінити стрілкаKeyUp стрілкаNotInList0 Помилка

На початок сторінки

Порядок подій для записів у формах

Для записів у формах події відбуваються, коли фокус переміщається на інший запис, у записі оновлюються дані, видаляється один або кілька наявних записів або створюється новий запис.

Переміщення фокуса на записи й оновлення даних у записах

Якщо фокус переміщено на наявний запис у формі, дані в записі введено або змінено, а фокус переміщено на інший запис, для форми відбувається така послідовність подій:

Поточна (форма) стрілкаBeforeUpdate (форма) стрілкаafterupdate (форма) стрілкапоточна (форма)

Якщо закрити запис, дані якого змінилися, але наступний запис ще не введено, відбуваються події Exit і LostFocus для елемента керування, на якому перебуває фокус. Ці події відбуваються після подій BeforeUpdate і AfterUpdate для цієї форми таким чином:

BeforeUpdate (форма) стрілкаAfterUpdate (форма) стрілкавихід (елемент керування) стрілкаlostfocus (елемент керування) стрілкапоточна (форма)

Коли фокус переміщується між елементами керування у формі, для кожного елемента керування відбуваються події. Наприклад, перелічені нижче послідовності подій виникають, коли виконуються такі дії:

  • Відкриття форми й змінення даних в елементі керування:

    Поточна (форма) стрілкавводу (елемента керування) стрілкаgofocus (Control) стрілкаBeforeUpdate (Control) стрілкаAfterUpdate (елемент керування)

  • Переміщення фокуса на інший елемент керування:

    Вихід (елемент керування 1) стрілкаlostfocus (елемент керування 1) стрілкаклавішу вводу (елемент керування 2) стрілкаGotFocus (елемент керування 2)

  • Переміщення фокуса на інший запис:

    BeforeUpdate (форма) стрілкаAfterUpdate (форма) стрілкавихід (елемент керування 2) стрілкаLostfocus (елемент керування 2) стрілкапоточна (форма)

Видалення записів

Коли запис видалено, у Microsoft Office Access відображається діалогове вікно із запитом на підтвердження видалення, а для форми відбуваються такі події:

Видалення стрілка beforedelпідтвердити стрілка afterdelconfirm

Якщо скасувати подію Delete, події BeforeDelConfirm і AfterDelConfirm не відбуваються, і це діалогове вікно не відображається.

Створення нового запису

Якщо фокус переміщено на новий (пустий) запис у формі, а потім створено новий запис (введено дані в елементі керування), відбувається така послідовність подій:

Поточна (форма) стрілкавводу (елемента керування) стрілкаgofocus (Control) стрілкаBeforeInsert (форма) стрілкаafterinsert (форма)

Подію BeforeInsert (Form) буде тригери після введення тексту в елементі керування. Після того, як ви залишали запис, ініціюється подія Afterinsert (форма).

Події BeforeUpdate і AfterUpdate для елементів керування у формі та для нового запису відбуваються після події BeforeInsert і перед подією AfterInsert.

На початок сторінки

Порядок подій для форм і підформ

Події для форм відбуваються, коли відкривається або закривається форма, переміщується фокус між формами або обробляються дані у формі чи підформі.

Відкриття та закриття форми

Коли форма відкривається, для неї відбувається така послідовність подій:

Відкриття стрілка завантаження стрілка змінення розміру стрілка активування стрілка поточного

Коли у формі немає активних елементів керування, для неї відбувається подія GotFocus після події Activate, але до події Current.

Коли форма закривається, для неї відбувається така послідовність подій:

Вивантаження стрілка вимкнення стрілка закрити

Коли у формі немає активних елементів керування для неї відбувається подія LostFocus після події Unload, але до події Deactivate.

Переміщення між формами

Під час переходу між двома відкритими формами для першої форми відбувається подія Deactivate, а для другої – подія Activate:

Деактивувати (form1) стрілкаACTIVATE (form2)

Подія Deactivate для форми також відбувається під час переходу з форми на іншу вкладку об’єкта в програмі Access. Проте подія Deactivate не відбувається, якщо перейти до діалогового вікна, форми, у якої властивість PopUp має значення Yes, або вікна в іншій програмі.

Примітка.:  Подія Open не відбувається, якщо фокус переміщується до форми, яку вже відкрито, навіть якщо фокус переміщується до цієї форми за допомогою дії OpenForm.

Робота з даними у формі

Події для форм і елементів керування відбуваються, коли фокус переміщується між записами у формі або змінюються дані. Наприклад,коли форма відкривається вперше, відбувається така послідовність подій:

Відкрити (форма) стрілказавантаження (форма) стрілказмінення розміру (форми) стрілкаАктивація (форма) стрілкапоточна (форма) стрілка(елемент керування)0gofocus (елемент керування)

Так само, коли форма закривається, відбувається така послідовність подій для цієї форми:

Вихід (елемент керування) стрілкаLostfocus (елемент керування) стрілкавивантаження (форма) стрілкадеактивування (форма) стрілказакрити (форма)

Якщо дані в елементі керування змінено, для елемента керування та форми відбудуться події BeforeUpdate і AfterUpdate, які передують події Exit для елемента керування.

Робота з підформами

Коли відкривається форма, яка містить підформи, підформа та її записи завантажуються до завантаження головної форми. Таким чином, події для підформи та її елементів керування (такі як Open, Current, Enter та GotFocus) відбуваються раніше подій для форми. Проте для підформ подія Activate не відбувається. Таким чином, якщо відкрити головну форму, подія Activate активується лише для головної форми.

Аналогічно, коли закривається форма, яка містить підформи, підформи та записи вивантажуються після форми. Подія Activate для підформ не відбувається. Таким чином, коли закривається головна форма, подія Deactivate активується лише для головної форми. Події для елементів керування, форм і підформ відбуваються в такому порядку:

  1. події для елементів керування підформи (такі як Exit та LostFocus);

  2. події для елементів керування форм (включно з елементами керування підформ);

  3. події для форми (наприклад Deactivate і Close);

  4. події для підформи.

Примітка.: Оскільки події для підформи відбуваються, коли закрито головну форму, певні події, наприклад скасування закриття головної форми з події в підформі, не відбудуться. Можливо, знадобиться перемістити ці типи перевірок у подію в головній формі.

На початок сторінки

Порядок подій для натискань клавіш і клацань мишкою

Події клавіатури відбуваються для форм і елементів керування, коли натискаються клавіші або надсилаються натискання клавіш, поки фокус знаходиться у формі або на елементі керування. Події миші для форм, розділів форм і елементів керування у формах відбуваються після натискання кнопки миші коли вказівник миші знаходиться у формі, розділі або на елементі керування. Події миші відбуваються, коли вказівник миші наводиться на форму, розділ або елемент керування.

Події клавіатури

Якщо натиснути та відпустити ключ, а елемент керування у формі має фокус (або використати дію SendKeys або оператор, щоб відправити натиснення клавіш), відбувається така послідовність подій:

Натискання клавіші стрілканатискання клавіші стрілкаKeyUp

Якщо натиснути та відпустити клавішу або відправити клавіші в Набір знаків ANSI, натискання клавіші"натискання клавіш" і " KeyUp " подій все відбувається. Якщо ви натискаєте та утримуєте клавішу ANSI, натискання клавіші та натискання кнопки подій Чергуватимете повторно(натискання клавіші, натисканняклавіші, натисканняклавіші тощо), докиви не відпустите ключ; Після цього відбувається подія KeyUp .

Якщо натиснути та відпустити клавішу не у форматі ANSI, відбудуться події KeyDown і KeyUp. Якщо натиснути й утримувати клавішу не у форматі ANSI, подія KeyDown відбувається кілька разів, доки клавішу відпустять, після чого відбувається подія KeyUp.

Якщо натискання клавіші активує іншу подію для елемента керування, така подія відбувається після події KeyPress, але раніше ніж подія KeyUp. Наприклад, якщо натискання клавіш призводить до зміни тексту в текстовому полі, що активує подію Change, відбувається така послідовність подій:

Натискання клавіші стрілканатискання клавіш стрілказмінення стрілкаНастроювання

Якщо натискання клавіші спричиняє переміщення фокуса з одного елемента керування на інший, подія KeyDown відбувається для першого елемента керування, у той час як для другого елемента керування відбуваються події KeyPress і KeyUp. Наприклад, якщо дані в елементі керування змінюються, а потім натискається клавіша табуляції, щоб перейти до наступного елемента керування, відбувається зазначена нижче послідовність подій:

  • Перший елемент керування:

    Натискання клавіші стрілка BeforeUpdate стрілка Післяоновлення стрілка вихід стрілка lostfocus

  • Другий елемент керування:

    Введення стрілка Готфокуса стрілка натискання клавіші стрілка KeyUp

Події миші

Якщо натиснути та відпустити кнопку миші, коли вказівник наведено на елемент керування у формі, для цього елемента керування відбудеться наведена нижче послідовність подій:

стрілкамиші ,стрілкавиберіть елементmoumoudown

Якщо клацнути елемент керування, коли фокус розташовано на іншому елементі, щоб перемістити фокус на цей інший елемент керування, відбувається така послідовність подій:

  • Перший елемент керування:

    Вихід стрілка lostfocus

  • Другий елемент керування:

    стрілка стрілка стрілка очищення стрілка клацання мишею

Якщо перейти на інший запис, а потім клацнути елемент керування, для форми також відбудеться подія Current перед настанням події Enter для елемента керування.

Подвійне клацання елемента керування активує настання подій Click і DblClick. Наприклад, якщо двічі клацнути елемент керування, окрім кнопки, для елемента керування відбудеться така послідовність подій:

стрілкаMouced стрілка виберіть елемент стрілка dblclick стрілка moubup

Якщо двічі клацнути кнопку, відбудеться наведена вище послідовність подій, після чого настане подія Click.

Подія MouseMove відбувається для форми, розділу або елемента керування, якщо вказівник миші наведено на форму, розділ або елемент керування. Ця подія не залежить від інших подій миші.

На початок сторінки

Порядок подій для звітів і розділів звітів

Події для звітів і розділів звітів відбуваються, коли звіт закривається або відкривається для друку чи попереднього перегляду.

Події для звітів

Якщо відкрити звіт для друку або попереднього перегляду, а потім закрити його чи перейти на іншу вкладку об’єкта в програмі Access, відбудеться така послідовність подій:

Відкриття стрілка активування стрілка закриття стрілка вимкнення

Якщо перейти від одного відкритого звіту до іншого, для першого звіту відбувається подія Deactivate, а для другого – подія Activate:

Деактивувати (report1) стрілкаACTIVATE (report2)

Подія Deactivate для звіту також відбувається, якщо перейти зі звіту на іншу вкладку об’єкта в програмі Access. Проте подія Deactivate не відбувається, якщо перейти до діалогового вікна, форми, у якої властивість PopUp має значення Yes, або вікна в іншій програмі.

Якщо відкрити звіт на основі запиту, перш ніж виконати цей запит, програма Access запускає для звіту подію Open. Зрештою, можна встановити умови для звіту за допомогою макросу або процедури події, які відповідають події Open. Наприклад, макрос або процедура події можуть відкрити спеціальне діалогове вікно, у якому потрібно ввести умову для звіту.

Події для розділів звітів

Під час друку або попереднього перегляду звіту відбуваються події Format і Print для розділів звітів після подій Open і Activate для звіту та перед подіями Close або Deactivate для цього звіту:

Відкрити (звіт) стрілкаактивувати (звіт) стрілкаформат (розділ звіту) стрілкаДрук (звіт) стрілказакрити (звіт) стрілкадеактивувати (звіт)

Безпека    Ви можете використовувати подання "звіт ", щоб увімкнути фільтрування користувачів у звітах. Але на відміну від попереднього перегляду, Формат і Друк подій у будь-якому розділі не виникає в поданні звіту. Це також стосується результатів функцій VBA та визначених користувачем процедур, які відображаються в елементах керування (наприклад, підписи етикеток, стан відображення, умовне форматування, змінення розміру елементів керування тощо) у межах цих подій. Таким чином, не використовуйте код у цій події, щоб форматувати, приховувати або друкувати конфіденційні дані, які можуть бути піддані. Ми радимо попередньо відфільтрувати дані або відключити попередній звіт, встановивши властивість AllowReportView на "ні".

Крім того, під час або після форматування, але перед подією Print можуть відбутися такі події:

  • Подія Retreat відбувається, коли програма Access повертається до попереднього розділу під час форматування звіту.

  • Подія NoData відбувається, якщо записи у звіті не відображаються.

  • Подія Page відбувається після форматування, але перед друком. Цю подію можна використовувати, щоб настроїти зовнішній вигляд друкованого звіту.

На початок сторінки

Потрібна додаткова довідка?

Отримуйте нові функції раніше за інших

Приєднатися до Microsoft оцінювачів >

Ця інформація корисна?

Наскільки ви задоволені якістю мови?
Що вплинуло на ваші враження?

Дякуємо за відгук!

×