Порядок событий в объектах базы данных

Важно :  Данная статья переведена с помощью машинного перевода, см. Отказ от ответственности. Используйте английский вариант этой статьи, который находится здесь, в качестве справочного материала.

Одно действие, например перемещение с одного элемента управления объекта к другому, может запустить несколько разных событий, которые происходят в определенной последовательности. Важно знать, когда и в каком порядке возникают события, так как это может повлиять на то, как и когда выполняются макросы или процедуры обработки событий. Например, если есть две процедуры обработки событий, которые должны выполняться в определенном порядке, нужно убедитесь в том, что в таком же порядке возникают события, связанные с ними.

В этом разделе...

Порядок событий элементов управления в форме

Порядок событий записей в формах

Порядок событий формы и подчиненной формы

Порядок событий клавиатуры и мыши

Порядок событий отчета и разделов отчета

Порядок событий элементов управления в форме

События элемента управления возникают в форме при переводе фокуса на элемент управления и при изменении или обновлении данных в элементе управления.

Примечание : Microsoft Office Access отображает имена событий в редакторе Visual Basic немного не так, как на странице свойств и в построителе макросов. Например, событие, которое на странице свойств и в построителе макросов называется On Got Focus, в редакторе Visual Basic называется GotFocus. В примерах ниже для имен событий используется формат Visual Basic для приложений (VBA).

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

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

Enter стрелка GotFocus

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

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

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

Exit стрелка LostFocus

Когда вы закрываете форму, события Exit и LostFocus возникают перед событиями, связанными с закрытием формы, такими как Unload, Deactivate или Close:

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

Изменение и обновление данных в элементе управления

Когда вы вводите в элемент управления в форме новые данные или изменяете существующие, а после этого переводите фокус на другой элемент управления, возникают события BeforeUpdate и AfterUpdate в следующем порядке:

BeforeUpdate стрелка AfterUpdate

Для элемента управления с измененным значением после событий BeforeUpdate и AfterUpdate возникают события Exit и LostFocus:

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

Когда вы изменяете текст, содержащийся в текстовом поле или в поле со списком, возникает событие Change. Оно происходит при любом изменении содержимого элемента управления, причем до перехода фокуса на другой элемент управления или на другую запись (и, следовательно, до возникновения событий BeforeUpdate и AfterUpdate). Если курсор находится в поле, то при нажатии любой клавиши в текстовом поле или поле со списком возникают следующие события:

KeyDown стрелка KeyPress стрелка Dirty стрелка Change стрелка KeyUp

Событие NotInList возникает, если ввести в поле со списком значение, которого нет в раскрывающемся списке, а затем попытаться переместить фокус на другой элемент управления или запись. Событие NotInList возникает после событий клавиатуры и события Change для поля со списком, но перед событиями других элементов управления или формы. Если свойство LimitToList поля со списком имеет значение Yes, сразу после события NotInList возникает событие Error для формы:

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

К началу страницы

Порядок событий записей в формах

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

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

При переводе фокуса на существующую запись в форме, вводе новых или изменении существующих данных в записи и при переходе на другую запись возникает такая последовательность событий:

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 выводит диалоговое окно с приглашением подтвердить удаление:

Delete стрелка BeforeDelConfirm стрелка AfterDelConfirm

Если отменить событие Delete, то события BeforeDelConfirm и AfterDelConfirm не возникнут, а диалоговое окно не появится.

Создание записи

При переводе фокуса на новую (пустую) запись в форме и создании записи путем ввода данных с клавиатуры происходят следующие события:

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

События BeforeUpdate и AfterUpdate для элементов управления в форме и для новой записи возникают после события BeforeInsert, но до события AfterInsert.

К началу страницы

Порядок событий формы и подчиненной формы

События формы возникают при открытии и закрытии форм, при переходах между формами и при работе с данными в форме или подчиненной форме.

Открытие и закрытие формы

При открытии формы события возникают в следующем порядке:

Open стрелка Load стрелка Resize стрелка Activate стрелка Current

Если в форме нет активных элементов управления, после события Activate, но до события Current возникает событие GotFocus для формы.

При закрытии формы происходят следующие события:

Unload стрелка Deactivate стрелка Close

Если в форме нет активных элементов управления, после события 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 главной формы. События элементов управления, формы и подчиненной формы возникают в следующем порядке:

  1. События элементов управления в подчиненной форме, такие как Exit и LostFocus.

  2. События элементов управления в главной форме (включая элемент управления подчиненной формы).

  3. События формы, такие как Deactivate и Close.

  4. События подчиненной формы.

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

К началу страницы

Порядок событий клавиатуры и мыши

События клавиатуры возникают в имеющих фокус формах или элементах управления при нажатии клавиш или передаче команд клавиатуры. События мыши возникают для форм, разделов форм и элементов управления при нажатии кнопок мыши, если в этот момент указатель находится в форме, разделе формы или элементе управления. События мыши также возникают при перемещении указателя в форме, разделе или элементе управления.

События клавиатуры

Если элемент управления в форме имеет фокус, а пользователь нажимает и отпускает клавишу или выполняет макрокоманду КомандыКлавиатуры (либо соответствующую инструкцию), возникает следующая цепочка событий:

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. Например, если пользователь изменяет данные в элементе управления и нажимает клавишу TAB для перехода на следующий элемент управления, то возникают следующие события:

  • Первый элемент управления:

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

  • Второй элемент управления:

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

События мыши

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

MouseDown стрелка MouseUp стрелка Click

Если фокус находится на элементе управления, а вы щелкаете другой элемент управления, чтобы переместить на него фокус, возникают следующие события:

  • Первый элемент управления:

    Exit стрелка LostFocus

  • Второй элемент управления:

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

Если вы переходите на другую запись и щелкаете элемент управления, то событие формы Current возникает до события Enter элемента управления.

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

MouseD own стрелка MouseUp стрелка Click стрелка DblClick стрелка MouseUp

Если дважды щелкнуть кнопку, возникает предыдущая последовательность событий, за которой следует второе событие Click.

Событие формы, раздела или элемента управления MouseMove возникает при перемещении указателя по форме, разделу или элементу управления. Это событие не зависит от других событий мыши.

К началу страницы

Порядок событий отчета и разделов отчета

События отчета и разделов отчета возникают при открытии отчета для печати или предварительного просмотра, а также при закрытии отчета.

События отчета

При открытии отчета для печати или предварительного просмотра и его последующем закрытии или переходе на другую вкладку Access события возникают в следующем порядке:

Open стрелка Activate стрелка Close стрелка Deactivate

При переходе между двумя открытыми отчетами возникает событие Deactivate для первого отчета и событие Activate для второго:

Deactivate (отчет 1) стрелка Activate (отчет 2)

Событие отчета Deactivate возникает также при переключении с отчета на вкладку другого объекта Access. Однако событие Deactivate не возникает при переходе в диалоговое окно, в окно формы, свойство PopUp которой имеет значение Yes, или в окно другой программы.

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

События разделов отчета

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

Open (отчет) стрелка Activate (отчет) стрелка Format (раздел отчета) стрелка Print (раздел отчета) стрелка Close (отчет) стрелка Deactivate (отчет)

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

  • Событие Retreat возникает при возвращении в предыдущий раздел во время форматирования.

  • Событие NoData возникает при отсутствии выводящихся в отчете записей.

  • Событие Page возникает после завершения форматирования, но до начала печати. Это событие можно использовать для настройки вида отчета при печати.

К началу страницы

Примечание : Отказ от ответственности относительно машинного перевода. Данная статья была переведена с помощью компьютерной системы без участия человека. Microsoft предлагает эти машинные переводы, чтобы помочь пользователям, которые не знают английского языка, ознакомиться с материалами о продуктах, услугах и технологиях Microsoft. Поскольку статья была переведена с использованием машинного перевода, она может содержать лексические,синтаксические и грамматические ошибки.

Совершенствование навыков
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединиться к программе предварительной оценки Office

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×