Applies ToAccess pentru Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

O singură acțiune, cum ar fi mutarea de la un control al unui obiect la alt control, poate declanșa mai multe evenimente, care au loc într-o anumită ordine. Este important să știți când au loc evenimente și în ce ordine, deoarece acest lucru poate influența modul și momentul în care se execută macrocomenzile sau procedurile eveniment. De exemplu, dacă există două proceduri eveniment care trebuie să ruleze într-o anumită ordine, se recomandă să vă asigurați că evenimentele cu care sunt asociate au loc în aceeași ordine.

În acest articol

Ordinea evenimentelor pentru controale din formulare

Evenimentele pentru controalele din formulare au loc atunci când mutați focalizare la un alt control și atunci când modificați și actualizați date într-un control.

Notă: Microsoft Office Access afișează numele de evenimente ușor diferit în Visual Basic Editor decât în foaia de proprietăți și în Generatorul de macrocomenzi. De exemplu, evenimentul denumit La Primire Focalizare în foaia de proprietăți a formularului și în Generatorul de macrocomenzi este denumit GotFocus în Visual Basic Editor. Exemplele din acest articol utilizează formatul Visual Basic for Applications (VBA) pentru numele de evenimente.

Mutarea focalizării la un control

Atunci când mutați focalizarea la un control dintr-un formular (de exemplu, prin deschiderea unui formular care conține unul sau mai multe controale active sau prin mutarea focalizării la alt control din același formular), evenimentele Enter și GotFocus apar în următoarea ordine:

Introduceți săgeată GotFocus

Atunci când deschideți un formular, evenimentele Enter și GotFocus au loc după evenimentele asociate cu deschiderea formularului (cum ar fi Open, Activate și Current), după cum urmează:

Open (formular) săgeatăActivate (formular) săgeatăCurrent (formular) săgeatăEnter (control) săgeatăGotFocus (control)

Atunci când focalizarea părăsește un control dintr-un formular (de exemplu, atunci când închideți un formular care conține unul sau mai multe controale active sau când treceți la alt control din același formular), evenimentele Exit și LostFocus apar în următoarea ordine:

Ieșire din săgeată LostFocus

Atunci când închideți un formular, evenimentele Exit și LostFocus au loc înainte de evenimentele asociate cu închiderea formularului (cum ar fi Unload, Deactivate și Close), după cum urmează:

Exit (control) săgeatăLostFocus (control) săgeatăUnload (formular) săgeatăDeactivate (formular) săgeatăClose (formular)

Modificarea și actualizarea datelor dintr-un control

Atunci când introduceți sau modificați date într-un control dintr-un formular și apoi mutați focalizarea la alt control, evenimentele BeforeUpdate și AfterUpdate au loc astfel:

BeforeUpdate săgeată Afte rUpdate

Evenimentele Exit șiLostFocus pentru un control a cărui valoare se schimbă au loc după evenimentele BeforeUpdate și AfterUpdate:

BeforeUpdate săgeată AfterUpdate săgeată Exit săgeată LostFocus

Atunci când modificați textul dintr-o casetă text sau din secțiunea casetă text a unei casete combo, are loc evenimentul Change. Acest eveniment are loc ori de câte ori se modifică conținutul controlului, dar înainte de a muta focalizarea la un alt control sau la altă înregistrare (și, prin urmare, înainte să aibă loc evenimentele BeforeUpdate și AfterUpdate). Următoarea secvență de evenimente are loc pentru fiecare tastă pe care o apăsați într-o casetă text sau în secțiunea casetă text a unei casete combo:

KeyDown săgeată KeyPress săgeată Modificare săgeată săgeatăModificare taste

Evenimentul NotInList are loc după ce introduceți într-o casetă combo o valoare care nu se găsește în lista casetei combo, iar apoi încercați să mutați focalizarea la alt control sau altă înregistrare. Evenimentul NotInList are loc după evenimentele de tastatură și evenimentele Change pentru caseta combo, dar înainte de evenimentele pentru orice alt control sau formular. Dacă proprietatea LimitareLaListă a casetei combo este setată la Da, evenimentul Error pentru formular are loc imediat după evenimentul NotInList:

KeyDown săgeată KeyPress săgeată Modificare săgeată#x6 KeyUp săgeată NotInList 0 Eroare

Începutul paginii

Ordinea evenimentelor pentru înregistrări din formulare

Evenimentele pentru înregistrări din formulare au loc atunci când mutați focalizare la altă înregistrare, actualizați date într-o înregistrare, ștergeți o înregistrare sau înregistrări existente sau creați o nouă înregistrare.

Mutarea focalizării la înregistrări și actualizarea datelor în înregistrări

Când mutați focalizarea la o înregistrare existentă într-un formular, introduceți sau modificați date din înregistrare, iar apoi mutați focalizarea la altă înregistrare, are loc următoarea secvență de evenimente pentru formular:

Current (formular) săgeatăBeforeUpdate (formular) săgeatăAfterUpdate (formular) săgeatăCurrent (formular)

Atunci când ieșiți din înregistrarea ale cărei date s-au modificat, dar înainte de a intra în următoarea înregistrare, au loc evenimentele Exit și LostFocus pentru controlul care are focalizarea. Aceste evenimente au loc după evenimentele BeforeUpdate și AfterUpdate pentru formular, după cum urmează:

BeforeUpdate (formular) săgeatăAfterUpdate (formular) săgeatăExit (control) săgeatăLostFocus (control) săgeatăCurrent (formular)

Pe măsură ce mutați focalizarea între controalele dintr-un formular, au loc evenimente pentru fiecare control. De exemplu, următoarele secvențe de evenimente au loc atunci când efectuați următoarele:

  • Deschideți un formular și modificați datele într-un control:

    Current (formular) săgeatăEnter (control) săgeatăGotFocus (control) săgeatăBeforeUpdate (control) săgeatăAfterUpdate (control)

  • Mutați focalizarea la alt control:

    Ieșire (control1) săgeatăLostFocus (control1) săgeatăEnter (control2) săgeatăGotFocus (control2)

  • Mutați focalizarea la altă înregistrare:

    BeforeUpdate (formular) săgeatăAfterUpdate (formular) săgeatăExit (control2) săgeatăLostFocus (control2) săgeatăCurrent (formular)

Ștergerea înregistrărilor

Atunci când ștergeți o înregistrare, au loc evenimentele următoare pentru formular, iar Microsoft Office Access afișează o casetă de dialog care vă solicită să confirmați ștergerea:

Ștergerea săgeată BeforeDelConfirm săgeată AfterDelConfirm

Dacă anulați evenimentul Delete, evenimentele BeforeDelConfirm și AfterDelConfirm nu au loc, iar caseta de dialog nu se afișează.

Crearea unei înregistrări noi

Atunci când mutați focalizarea la o înregistrare nouă (necompletată) dintr-un formular, iar apoi creați o înregistrare nouă tastând date într-un control, are loc următoarea secvență de evenimente:

Current (formular) săgeatăEnter (control) săgeatăGotFocus (control) săgeatăBeforeInsert (formular) săgeatăAfterInsert (formular)

Evenimentul BeforeInsert (formular) se declanșează imediat ce începeți să tastați în control. Evenimentul AfterInsert (formular) se declanșează după ce părăsiți înregistrarea.

Evenimentele BeforeUpdate șiAfterUpdate pentru controalele din formular și pentru noua înregistrare au loc după evenimentul BeforeInsert și înainte de evenimentul AfterInsert.

Începutul paginii

Ordinea evenimentelor pentru formulare și subformulare

Evenimentele pentru formulare au loc atunci când deschideți sau închideți un formular, vă deplasați de la un formular la altul sau lucrați cu date dintr-un formular sau subformular.

Deschiderea și închiderea unui formular

Atunci când deschideți un formular are loc următoarea secvență de evenimente pentru formular:

Deschideți săgeată Încărcare săgeată Redimensionare săgeată Activare săgeată Curent

Dacă nu există controale active în formular, evenimentul GotFocus are loc pentru formular după evenimentul Activate, dar înainte de evenimentul Current.

Atunci când închideți un formular are loc următoarea secvență de evenimente pentru formular:

Anularea încărcării săgeată dezactivarea săgeată închidere

Dacă nu există controale active pe formular, evenimentul LostFocus are loc pentru formular după evenimentul Unload, dar înainte de evenimentul Deactivate.

Deplasarea de la un formular la altul

Atunci când comutați între două formulare deschise, evenimentul Deactivate are loc pentru primul formular, iar evenimentul Activate are loc pentru al doilea formular:

Dezactivare (formular1) săgeatăActivare (formular2)

Evenimentul Dezactivare pentru un formular are loc și atunci când comutați de la un formular la altă filă de obiect în Access. Cu toate acestea, evenimentul Deactivate nu are loc atunci când comutați la o casetă de dialog, la un formular a cărui proprietate PopUp este setată la Da sau la o fereastră din alt program.

Notă:  Evenimentul Open nu are loc dacă mutați focalizarea la un formular care este deja deschis, chiar dacă ați mutat focalizarea la acel formular prin efectuarea unei acțiuni OpenForm.

Lucrul cu datele dintr-un formular

Evenimentele de formular și de control au loc atunci când vă deplasați de la o înregistrare la alta din formular și modificați date. De exemplu, atunci când deschideți prima dată un formular, are loc următoarea secvență de evenimente:

Deschidere (formular) săgeatăÎncărcare (formular) săgeatăRedimensionare (formular) săgeatăActivare (formular) săgeatăCurrent (formular) săgeatăEnter (control)0 GotFocus (control)

În mod asemănător, atunci când închideți un formular, are loc următoarea secvență de evenimente:

Exit (control) săgeatăLostFocus (control) săgeatăUnload (formular) săgeatăDeactivate (formular) săgeatăClose (formular)

Dacă ați modificat datele într-un control, evenimentele BeforeUpdate și AfterUpdate atât pentru control, cât și pentru formular au loc înainte de evenimentul Exit pentru control.

Lucrul cu subformulare

Atunci când deschideți un formular care conține un subformular, subformularul și înregistrările sale sunt încărcate înaintea formularului principal. Astfel, evenimentele pentru subformular și controalele sale (cum ar fi Open, Current, Enter și GotFocus) au loc înainte de evenimentele pentru formular. Cu toate acestea, evenimentul Activate nu are loc pentru subformulare. Prin urmare, deschiderea unui formular principal declanșează un eveniment Activate numai pentru formularul principal.

În mod similar, atunci când închideți un formular care conține un subformular, subformularul și înregistrările sale sunt descărcate după formular. Evenimentul Deactivate nu are loc pentru subformulare. Prin urmare, închiderea unui formular principal declanșează un eveniment Deactivate numai pentru formularul principal. Evenimentele pentru controale, formular și subformular au loc în următoarea ordine:

  1. Evenimente pentru controalele subformularului (cum ar fi Exit și LostFocus)

  2. Evenimente pentru controalele de formular (inclusiv controlul de subformular)

  3. Evenimente pentru formular (cum ar fi Deactivate și Close)

  4. Evenimente pentru subformular

Notă: Deoarece evenimentele pentru un subformular au loc după ce formularul principal este închis, anumite evenimente, cum ar fi anularea închiderii formularului principal de la un eveniment din subformular, nu vor avea loc. Poate fi necesar să mutați aceste tipuri de teste de validare la un eveniment din formularul principal.

Începutul paginii

Ordinea evenimentelor pentru apăsări de taste și clicuri de mouse

Evenimentele de la tastatură pentru formulare și controale au loc atunci când apăsați taste sau trimiteți secvențe de taste în timp ce formularul sau controlul are focalizare. Evenimentele de la mouse pentru formulare, secțiuni de formular și controale din formulare au loc atunci când faceți clic pe butoanele mouse-ului în timp ce indicatorul mouse-ului este pe un formular, o secțiune sau un control. Evenimentele de la mouse au loc, de asemenea, atunci când deplasați indicatorul mouse-ului peste o formă, o secțiune sau un control.

Evenimente de la tastatură

Atunci când apăsați și eliberați o tastă în timp ce un control dintr-un formular are focalizarea (sau utilizează acțiunea SendKeys sau declarație pentru a trimite o secvență de taste), are loc următoarea secvență de evenimente:

KeyDown săgeată KeyPress săgeată KeyUp

Atunci când apăsați și eliberați o tastă sau trimiteți o secvență de taste în set de caractere ANSI, au loc toate evenimentele KeyDown, KeyPress și KeyUp. Dacă apăsați și țineți apăsată o tastă ANSI, evenimentele KeyDown și KeyPress alternează în mod repetat (KeyDown, KeyPress, KeyDown, KeyPressși așa mai departe) până când eliberați tasta; apoi are loc evenimentul KeyUp.

Dacă apăsați și eliberați o tastă non-ANSI, au loc evenimentele KeyDown și KeyUp. Dacă apăsați și mențineți apăsată o tastă non-ANSI, evenimentul KeyDown are loc în mod repetat până când eliberați tasta, iar apoi are loc evenimentul KeyUp.

Dacă apăsarea unei taste declanșează alt eveniment pentru un control, evenimentul respectiv are loc după evenimentul KeyPress, dar înainte de evenimentul KeyUp. De exemplu, dacă o secvență de taste modifică textul într-o casetă text, ceea ce declanșează un eveniment Change, are loc următoarea secvență de evenimente:

KeyDown săgeată KeyPress săgeată Change săgeată KeyUp

Dacă o secvență de taste determină mutarea focalizării de la un control la alt control, evenimentul KeyDown are loc pentru primul control, în timp ce evenimentele KeyPress și KeyUp au loc pentru al doilea control. De exemplu, dacă modificați datele într-un control, iar apoi apăsați tasta TAB pentru a trece la următorul control, au loc următoarele secvențe de evenimente:

  • Primul control:

    KeyDown săgeată BeforeUpdate săgeată AfterUpdate săgeată Exit săgeată LostFocus

  • Al doilea control:

    Introduceți săgeată GotFocus săgeată KeyPress săgeată KeyUp

Evenimente de la mouse

Atunci când faceți clic și eliberați un buton de mouse în timp ce indicatorul mouse-ului este deasupra unui control dintr-un formular, are loc următoarea secvență de evenimente pentru control:

MouseDown săgeată MouseUp săgeată Clic

Dacă un control are focalizarea și faceți clic pe alt control pentru a muta focalizarea la acest al doilea control, au loc următoarele secvențe de evenimente:

  • Primul control:

    Ieșire din săgeată LostFocus

  • Al doilea control:

    Introduceți săgeată GotFocus săgeată MouseDown săgeată MouseUp săgeată clic

Dacă treceți la altă înregistrare, iar apoi faceți clic pe un control, are loc, de asemenea, evenimentul Current pentru formular înainte de evenimentul Enter pentru control.

Dacă se face dublu clic pe un control, au loc evenimentele Click și DblClick. De exemplu, atunci când faceți dublu clic pe un control, altul decât un buton de comandă, are loc următoarea secvență de evenimente pentru control:

MouseD proprii săgeată MouseUp săgeată Clic săgeată DblClick săgeată MouseUp

Atunci când faceți dublu clic pe un buton de comandă, are loc secvența de evenimente precedentă, urmată de un al doilea eveniment Click.

Evenimentul MouseMove pentru un formular, o secțiune sau un control are loc atunci când deplasați indicatorul mouse-ului deasupra formularului, secțiunii sau controlului. Acest eveniment este independent de celelalte evenimente de mouse.

Începutul paginii

Ordinea evenimentelor pentru rapoarte și secțiuni de raport

Evenimentele pentru rapoarte și secțiuni de raport au loc atunci când deschideți un raport pentru a-l imprima sau a-l previzualiza sau când închideți un raport.

Evenimente pentru rapoarte

Atunci când deschideți un raport pentru a-l imprima sau a-l previzualiza, iar mai târziu închideți raportul sau treceți la altă filă de obiect din Access, are loc următoarea secvență de evenimente pentru raport:

Deschideți săgeată Activare săgeată Închidere săgeată Dezactivare

Atunci când comutați între două rapoarte deschise, evenimentul Deactivate are loc pentru primul raport, iar evenimentul Activate are loc pentru al doilea raport:

Dezactivare (raport1) săgeatăActivare (raport2)

Evenimentul Deactivate pentru un raport are loc și atunci când comutați de la un raport la altă filă de obiect în Access. Cu toate acestea, evenimentul Deactivate nu are loc atunci când comutați la o casetă de dialog, la un formular a cărui proprietate PopUp este setată la Da sau la o fereastră din alt program.

Atunci când deschideți un raport care se bazează pe o interogare, Access declanșează evenimentul Open pentru raport înainte să execute interogarea subiacentă. Prin urmare, puteți seta criteriile pentru raport utilizând o macrocomandă sau o procedură eveniment care răspunde la evenimentul Deschidere. De exemplu, macrocomanda sau procedura eveniment poate deschide o casetă de dialog particularizată în care introduceți criteriile raportului.

Evenimente pentru secțiuni de raport

Atunci când imprimați sau previzualizați un raport, evenimentele Format și Print pentru secțiunile de raport au loc după evenimentele Open și Activate pentru raport și înainte de evenimentele Close sau Deactivate ale raportului:

Deschidere (raport) săgeatăActivare (raport) săgeatăFormat (secțiune de raport) săgeatăImprimare (secțiune de raport) săgeatăÎnchidere (raport) săgeatăDezactivare (raport)

Securitate    Puteți utiliza Vizualizarea raport pentru a activa filtrarea rapoartelor de către utilizatori. Dar, spre deosebire de Examinare înaintea imprimării, evenimentele Format și Imprimare din orice secțiune nu au loc în Vizualizarea raport. Acest lucru se aplică și rezultatelor funcției VBA și procedurilor definite de utilizator care se afișează în controale (cum ar fi legendele de etichete, starea de afișare, formatarea condiționată, redimensionarea controalelor și așa mai departe) din acele evenimente. Prin urmare, nu utilizați cod în acest eveniment pentru a formata, ascunde sau imprima date confidențiale, care pot deveni expuse. Vă recomandăm să pre-filtrați datele sau să dezactivați Previzualizare raport setând proprietatea AllowReportView la Nu.

În plus, pot avea loc următoarele evenimente în timpul sau după formatare, însă înainte de evenimentul Print:

  • Evenimentul Retreat are loc atunci când Access revine la o secțiune anterioară în timpul formatării raportului.

  • Evenimentul NoData are loc dacă nu există înregistrări afișate de raport.

  • Evenimentul Page are loc după formatare, dar înainte de imprimare. Puteți utiliza acest eveniment pentru a particulariza aspectul raportului imprimat.

Începutul paginii

Aveți nevoie de ajutor suplimentar?

Doriți mai multe opțiuni?

Explorați avantajele abonamentului, navigați prin cursurile de instruire, aflați cum să vă securizați dispozitivul și multe altele.

Comunitățile vă ajută să adresați întrebări și să răspundeți la întrebări, să oferiți feedback și să primiți feedback de la experți cu cunoștințe bogate.