Applies ToAccess для Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

У цій статті

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

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

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

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

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

Введіть стрілка GotFocus

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

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

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

Вийти стрілка LostFocus

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

Вихід (елемент керування) стрілкаLostFocus (елемент керування) стрілкаUnload (форма) стрілкаDeactivate (форма) стрілкаClose (форма)

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

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

BeforeUpdate стрілка Afte rUpdate

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

BeforeUpdate стрілка AfterUpdate стрілка Exit стрілка LostFocus

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

KeyDown стрілка keyPress стрілка Dirty стрілка Change стрілка KeyUp

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

KeyDown стрілка KeyPress стрілка Dirty стрілка Change стрілка KeyUp стрілка NotInList 0 Error

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

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

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

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

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

Current (form) стрілкаBeforeUpdate (форма) стрілкаAfterUpdate (форма) стрілкаCurrent (форма)

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

BeforeUpdate (форма) стрілкаAfterUpdate (форма) стрілкаExit (елемент керування) стрілкаLostFocus (елемент керування) стрілкаCurrent (форма)

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

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

    Current (form) стрілкаEnter (елемент керування) стрілкаGotFocus (елемент керування) стрілкаBeforeUpdate (елемент керування) стрілкаAfterUpdate (елемент керування)

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

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

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

    BeforeUpdate (форма) стрілкаAfterUpdate (форма) стрілкаExit (елемент керування2) стрілкаLostFocus (елемент керування2) стрілкаCurrent (форма)

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

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

Видалити стрілка BeforeDelConfirm стрілка AfterDelConfirm

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

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

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

Current (форма) стрілкаEnter (елемент керування) стрілкаGotFocus (елемент керування) стрілкаBeforeInsert (форма) стрілкаAfterInsert (форма)

Подія BeforeInsert (форма) активує, щойно ви почнете вводити текст в елементі керування. Подія AfterInsert (форма) запускається після того, як ви залишите запис.

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

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

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

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

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

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

Відкрити стрілка завантажити стрілка Змінити розмір стрілка активувати стрілка поточний

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

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

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

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

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

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

Deactivate (форма1) стрілкаActivate (форма2)

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

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

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

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

Відкрити (форма) стрілкаЗавантажити (форма) стрілкаЗмінити розмір (форма) стрілкаActivate (форма) стрілкаCurrent (форма) стрілкаEnter (елемент керування)0 GotFocus (елемент керування)

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

Exit (control) стрілкаLostFocus (елемент керування) стрілкаUnload (форма) стрілкаDeactivate (форма) стрілкаClose (форма)

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

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

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

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

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

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

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

  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 стрілка Change стрілка KeyUp

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

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

    KeyDown стрілка BeforeUpdate стрілка AfterUpdate стрілка Exit стрілка LostFocus

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

    Enter стрілка GotFocus стрілка KeyPress стрілка KeyUp

Події миші

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

MouseDown стрілка MouseUp стрілка click

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

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

    Вийти стрілка LostFocus

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

    Enter стрілка GotFocus стрілка MouseDown стрілка MouseUp стрілка Click

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

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

MouseD власний стрілка MouseUp стрілка Click стрілка DblClick стрілка MouseUp

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

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

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

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

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

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

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

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

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

Вимкнути (звіт1) стрілкаActivate (звіт2)

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

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

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

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

Відкрити (звіт) стрілкаActivate (звіт) стрілкаFormat (розділ звіту) стрілкаPrint (розділ звіту) стрілкаClose (звіт) стрілкаDeactivate (звіт)

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

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

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

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

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

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

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

Потрібні додаткові параметри?

Ознайомтеся з перевагами передплати, перегляньте навчальні курси, дізнайтесь, як захистити свій пристрій тощо.

Спільноти допомагають ставити запитання й відповідати на них, надавати відгуки та дізнаватися думки висококваліфікованих експертів.