Ред на събитията за обекти на бази данни

Важно : Тази статия е преведена машинно – вижте отказа от отговорност. Английската версия на тази статия за справка можете да намерите тук .

Едно действие, като например преместване от една контрола в обект към друга, може да задейства няколко различни събития, които възникват в определена последователност. Важно е да знаете кога и в какъв ред възникват събитията, защото това може да повлияе на начина и времето на изпълнение на вашите макроси или процедури за обработка на събития. Ако например има две процедури за обработка на събития, които трябва да се изпълнят в определен ред, ще искате да се уверите, че събитията, с които са свързани, възникват в същия ред.

В тази статия

Ред на събитията за контроли във формуляри

Ред на събитията за записи във формуляри

Ред на събитията за формуляри и подформуляри

Ред на събитията за натискания на клавиши и щраквания с мишката

Ред на събитията за отчети и раздели на отчети

Ред на събитията за контроли във формуляри

За контролите във формулярите възникват събития, когато преместите фокуса върху контролата и когато промените и актуализирате данни в контролата.

Забележка : Microsoft Office Access показва малко по-различно имената на събитията в редактора на Visual Basic, отколкото в листа със свойства и конструктора на макроси. Например събитието, наречено При получаване на фокус в листа със свойства на формуляра и в конструктора на макроси, се нарича GotFocus в редактора на Visual Basic. В примерите в тази статия се използва форматът на Visual Basic for Applications (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

Събитията Exit и LostFocus за контролата, чиято стойност се променя, възникват след събитията BeforeUpdate и AfterUpdate:

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

Когато промените текста в текстово поле или в раздела за текстово поле на разгъващ се списък, ще възникне събитието Change. Това събитие възниква винаги когато се променя съдържанието на контролата, но преди да преместите фокуса върху друга контрола или запис (и следователно преди да възникнат събитията BeforeUpdate и AfterUpdate). За всеки клавиш, който натиснете в текстово поле или в раздела за текстово поле на разгъващ се списък, възниква следната последователност от събития:

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

Събитието NotInList възниква, когато въведете стойност в разгъващ се списък, която не може да бъде намерена в него, и след това се опитате да преместите фокуса върху друга контрола или запис. Събитието NotInList възниква след събитията за клавиатурата и събитията Change за разгъващия се списък, но преди събитията за всяка друга контрола или за формуляра. Ако свойството LimitToList на разгъващия се списък е с настройка Да, събитието Error за формуляра ще възникне незабавно след събитието NotInList:

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

Ако няма активни контроли във формуляра, събитието GotFocus за формуляра ще възникне след събитието Activate, но преди събитието Current.

Когато затворите формуляр, за формуляра ще възникне следната последователност от събития:

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

Ако няма активни контроли във формуляра, събитието LostFocus за формуляра ще възникне след събитието Unload, но преди събитието Deactivate.

Придвижване между формуляри

Когато превключите между два отворени формуляра, събитието Deactivate възниква за първия формуляр, а събитието Activate възниква за втория формуляр:

Deactivate (формуляр1) стрелка Activate (формуляр2)

Събитието Deactivate за формуляр възниква и когато превключите от формуляра към друг раздел на обект в Access. Събитието Deactivate обаче не възниква, когато превключите към диалогов прозорец, към формуляр, за който свойството PopUp е с настройка Да, или към прозорец в друга програма.

Забележка :  Събитието 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. Събития за подформуляра

Забележка :  Тъй като събитията за подформуляр възникват след затварянето на главния формуляр, някои събития, като например отмяна на затварянето на главния формуляр от събитие в подформуляра, няма да възникнат. Може да се наложи да преместите тези типове тестове за проверка към събитие в главния формуляр.

Най-горе на страницата

Ред на събитията за натискания на клавиши и щраквания с мишката

За формулярите и контролите възникват събития за клавиатурата, когато натиснете клавиши или изпратите команди за натиснати клавиши, докато фокусът се намира във формуляра или контролата. За формулярите, разделите на формулярите и контролите във формулярите възникват събития за мишката, когато натиснете бутоните на мишката, докато показалецът се намира върху формуляр, раздел или контрола. Събития за мишката възникват и когато преместите показалеца върху формуляр, раздел или контрола.

Събития за клавиатурата

Когато натиснете и освободите клавиш, докато фокусът се намира върху контрола във формуляр, (или използвате действието SendKeys или команда за изпращане на натиснат клавиш), ще възникне следната последователност от събития:

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

Когато натиснете и освободите клавиш или изпратите команда за натиснат клавиш в набора от знаци АNSI, ще възникнат събитията 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

Ако фокусът се намира в контрола и щракнете върху друга контрола, за да преместите фокуса в нея, ще възникне следната последователност от събития:

  • Първа контрола:

    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 е с настройка Да, или към прозорец в друга програма.

Когато отворите отчет, базиран на заявка, Access задейства събитието Open за отчета, преди да изпълни съответната заявка. В резултат на това можете да зададете критериите за отчета, като използвате макрос или процедура за обработка на събитие, отговарящи на събитието Open. Например макросът или процедурата за обработка на събитие може да отваря диалогов прозорец по избор, в който да въведете критериите за отчета.

Събития за раздели на отчет

Когато отпечатвате или преглеждате отчет, събитията Format и Print за разделите на отчета възникват след събитията Open и Activate за отчета и преди събитията Close или Deactivate за отчета:

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

Освен това посочените по-долу събития могат да възникнат по време на или след форматиране, но преди събитието Print:

  • Събитието Retreat възниква, когато Access се връща към предходен раздел по време на форматирането на отчет.

  • Събитието NoData възниква, ако няма показани от отчета записи.

  • Събитието Page възниква след форматирането, но преди отпечатването. Можете да използвате това събитие, за да персонализирате изгледа на отпечатания отчет.

Най-горе на страницата

Забележка : Отказ от отговорност за машинен превод: Тази статия е преведена от компютърна система без човешка намеса. Microsoft предлага тези машинни преводи, за да помогне на потребителите, които не говорят английски, да се възползват от съдържанието за продукти, услуги и технологии на Microsoft. Тъй като статията е преведена машинно, е възможно да съдържа грешки в речника, синтаксиса и граматиката.

Разширете уменията си
Преглед на обучението
Получавайте първи новите функции
Присъединете се към участниците в Office Insider

Беше ли полезна тази информация?

Благодарим ви за обратната връзка!

Благодарим ви за вашата обратна връзка. Изглежда, че ще бъде полезно да ви свържем с един от нашите агенти по поддръжката на Office.

×