Порядок подій в об’єктах бази даних

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

В цьому розділі.

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

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

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

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

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

Open (форма) Activate (форма) Current (форма) Enter (елемент управління) GotFocus (елемент управління)

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

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

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

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

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

BeforeUpdateAfterUpdate

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

BeforeUpdateAfterUpdateExitLostFocus

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

KeyDownKeyPressDirtyChangeKeyUp

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

KeyDownKeyPressDirtyChangeKeyUpNotInListError

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

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

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

При перекладі фокуса на існуючий запис у формі, введенні нових або зміну існуючих даних в запису і при переході на інший запис виникає така послідовність подій:

Current (форма) BeforeUpdate (форма) AfterUpdate (форма) Current (форма)

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

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

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

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

Current (форма) Enter (елемент управління) GotFocus (елемент управління) BeforeUpdate (елемент управління) AfterUpdate (елемент управління)

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

Exit елемент управління 1) LostFocus (елемент управління 1) Enter (елемент управління 2) GotFocus (елемент управління 2)

Переклад фокусу на інший запис:

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

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

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

DeleteBeforeDelConfirmAfterDelConfirm

Якщо скасувати подія Delete. то події BeforeDelConfirm і AfterDelConfirm не буде, а діалогове вікно не з'явиться.

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

При перекладі фокуса на нову (порожню) запис у формі і створенні запису шляхом введення даних з клавіатури, стається таке:

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

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

Порядок подій форми і підпорядкованої форми

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

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

При відкритті форми події виникають в наступному порядку:

OpenLoadResizeActivateCurrent

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

При закритті форми відбуваються такі події:

UnloadDeactivateClose

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

Як перейти від однієї формами

При переході з однієї відкритої форми в іншу виникає подія Deactivate для першої форми і подія Activate для другої форми:

Deactivate (форма 1) Activate (форма 2)

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

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

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

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

Open (форма) Load (форма) Resize (форма) Activate (форма) Current (форма) Enter (елемент управління) GotFocus (елемент управління)

Аналогічно при закритті форми виникають такі події:

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

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

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

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

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

Події елементів управління в підлеглій формі, такі як Exit і LostFocus.

Події елементів управління в головній формі (включаючи елемент управління підлеглої форми).

Події форми, такі як Deactivate і Close.

Події підпорядкованої форми.

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

Порядок подій клавіатури і миші

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

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

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

KeyDownKeyPressKeyUp

При натисканні або відпуску клавіші або передачі команди клавіатури, відповідної знаку ANSI, завжди виникають події KeyDown. KeyPress і KeyUp. При натисканні та утриманні клавіші ANSI поперемінно виникають події KeyDown і KeyPress (KeyDown. KeyPress. KeyDown. KeyPress і т. Д.) До відпускання клавіші. При відпуску клавіші виникає подія KeyUp.

При натисканні та відпусканні клавіші, яка не є клавішею ANSI, виникають події KeyDown і KeyUp. Якщо ви натискаєте і утримуєте клавішу, яка не є клавішею ANSI, то до відпускання клавіші виникає і повторюється подія KeyDown; при відпуску клавіші виникає подія KeyUp.

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

KeyDownKeyPressChangeKeyUp

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

Перший елемент управління:

KeyDownBeforeUpdateAfterUpdateExitLostFocus

Другий елемент управління:

EnterGotFocusKeyPressKeyUp

події миші

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

MouseDownMouseUpClick

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

Перший елемент управління:

Другий елемент управління:

EnterGotFocusMouseDownMouseUpClick

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

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

MouseDownMouseUpClickDblClickMouseUp

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

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

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

події звіту

OpenActivateCloseDeactivate

При переході між двома відкритими звітами виникає подія Deactivate для першого звіту і подія Activate для другого:

Deactivate (звіт 1) Activate (звіт 2)

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

При відкритті звіту, створеного на основі запиту, Access створює для звіту подія Open до виконання базового запиту. Це робить можливим введення в звіт умов за допомогою макросу або процедури обробки подій, які запускаються у відповідь на подію Open. Наприклад, макрос або процедура обробки подій дозволяють відкрити настроюється діалогове вікно, через яке користувач вводить в звіт умови.

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

Open (звіт) Activate (звіт) Format (розділ звіту) Print (розділ звіту) Close (звіт) Deactivate (звіт)

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

Подія Retreat виникає при поверненні в попередній розділ під час форматування.

Подія NoData виникає при відсутності виводяться в звіті записів.

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