Utilizarea macrocomenzilor pentru gestionarea evenimentelor

Utilizarea macrocomenzilor pentru gestionarea evenimentelor

Cel mai adesea, macro-urile sunt folosite pentru procesarea evenimentelor. În acest caz, macro-ul poate funcționa ca un program independent și ca parte a procedurii VBA (Visual Basic for Applications). Prima opțiune va fi luată în considerare în această secțiune, iar cea de-a doua va fi subiectul atenției noastre în Capitolul 12.







Un eveniment este orice acțiune a utilizatorului: faceți clic pe, deschideți un formular etc. Un eveniment poate fi, de asemenea, inițiat de orice operator Visual Basic sau de sistemul de acces propriu-zis. Evenimentele sunt asociate cu formulare, rapoarte, secțiuni de formular și rapoarte, precum și cu controale de formă, în special cu câmpuri. Răspunsul la un eveniment poate fi executarea unei proceduri de tratare a evenimentelor în VBA sau într-o macrocomandă.

Ce este manipularea evenimentului? De exemplu, să vedem cum arată proprietățile câmpului de formular (permiteți-le să fie forma țării). Deschideți-o în vizualizarea Design (consultați Figura 10.1).

De asemenea, trebuie să deschideți o listă de evenimente furnizate pentru orice câmp al acestui formular (de exemplu, pentru câmpul Cod). Pentru a face acest lucru, fie dublu-clic pe butonul din stânga al mouse-ului în acest domeniu, sau faceți clic în același loc, clic dreapta și din meniul contextual selectați Properties. Când aceeași fereastră apare pe ecran, deschideți fila Eveniment din fereastră. Prin urmare, va fi afișată lista eventualelor evenimente (a se vedea Figura 10.2).

Un eveniment apare pentru acest câmp în următoarele cazuri:

• când câmpul este actualizat (înainte sau după operație);

• când câmpul este deschis / închis;

• când câmpul este activat / dezactivat, când primește sau pierde focalizarea;

• când utilizați butoanele mouse-ului (faceți clic, faceți dublu clic, mutați cursorul în sus sau în jos);

• când utilizați comenzile rapide de la tastatură (apăsarea unei taste, deplasarea cursorului în sus sau în jos);

• când mutați cursorul.

Dezvoltatorul, care construiește în sistem anumite răspunsuri la acțiunile utilizatorilor, ar trebui să ia în considerare următoarele. Fiecare operație separată (de exemplu, trecerea de la un control la altul) poate duce la o serie de evenimente care apar într-o anumită secvență. Este foarte important să o cunoaștem, deoarece ordinea evenimentelor depinde de condițiile și ordinea de execuție a macrocomenzilor și a procedurilor de procesare a evenimentelor. Să presupunem că sunt create două astfel de proceduri și trebuie efectuate într-o anumită ordine. Deci, utilizatorul trebuie să fie sigur că evenimentele care provoacă aceste proceduri apar în aceeași ordine.

Ordinea evenimentelor pentru comenzile din formulare Evenimentele comenzii apar în formă atunci când mutați focalizarea pe comanda și atunci când schimbați sau actualizați datele din acel control.

Conversia focalizării la un control

Deci, atunci când vă deplasați focalizarea pe o formă în care sunt afișate unul sau mai multe comenzi active sau când treceți la un alt control în aceeași formă, evenimentele apar în următoarea ordine:

Intrare • Focalizare.

Aceste evenimente apar și după ce utilizatorul deschide formularul, adică după operațiunile Deschise, Înregistrare curentă. Secvența în acest caz este după cum urmează:

intrare de deschidere (pentru forma) • Activare (pentru a forma) • curent de înregistrare (pentru a forma) (pentru control) • Pregătirea focalizare (pentru control).

Luați în considerare o situație diferită: elementul de control pierde focalizarea. De exemplu, forma în care unul sau mai multe controale sunt activate se închide sau utilizatorul trece la un alt control în aceeași formă. În acest caz, apar evenimente:

Ieșire • Pierdere de focalizare.

Când utilizatorul închide formularul, evenimentele de ieșire și pierdere apar înainte de operațiile asociate cu această închidere: Încărcare, Închidere, Închidere. Ordinul va fi:

Ieșire (pentru control) • Pierdere de focalizare (pentru control) • Descărcare (pentru formular) • Deconectare (pentru formular) • Închidere (pentru formular).

Modificați și actualizați datele din control

Să presupunem că un utilizator include date noi în controlul formularului sau le schimbă pe cele existente și apoi se îndreaptă spre un alt control. Apoi, apar evenimente înainte de actualizare și după actualizare, care apar în următoarea ordine:

Înainte de actualizare • După actualizare.

Evenimentele de ieșire și pierderea de focalizare pentru controlul modificabil apar după evenimentele de upgrade și După upgrade:

Înainte de actualizare • După actualizare • Ieșire • Pierdere de focalizare.

Dacă utilizatorul modifică textul care se află în câmp sau modifică conținutul casetei combo, apare evenimentul Modificare. Rețineți că acest lucru se întâmplă când se modifică conținutul comenzii, înainte de a trece la un alt control sau la o altă înregistrare (prin urmare, înainte de evenimentele Înainte și după actualizare). Dacă cursorul este în câmp, făcând clic pe orice tastă corespunzătoare simbolului provoacă următoarele evenimente:

Tasta Jos • Apăsați tasta • Modificare • Tasta Sus.

Evenimentul Lipsă în listă apare când utilizatorul introduce o valoare în caseta combo care nu se află în listă și apoi încearcă să comute la un alt control sau la o altă intrare. Evenimentul nr în listă are loc și după evenimentele tastaturii și evenimentul Schimbați pentru caseta combo, dar înainte ca orice evenimente să apară în control sau în formular. Dacă setați proprietatea Restricții listă la Da, imediat după evenimentul Lipsă, apare o eroare în formularul Error:







Tasta Jos • Apăsați tasta • Modificare • Tasta Sus.

Ordinea înregistrării evenimentelor în formular

Evenimentele de înregistrare apar în formă în următoarele cazuri:

• când transferați focalizarea pe înregistrare;

• la actualizarea conținutului înregistrării;

• când ștergeți o înregistrare / înregistrare existentă;

• la crearea unei înregistrări noi.

Mutarea focusului asupra înregistrărilor și actualizarea conținutului înregistrărilor

Când transferați focalizarea pe o înregistrare care există în formular, când introduceți date noi sau modificați datele existente într-o înregistrare și când treceți la o altă înregistrare a aceluiași formular, se produce următoarea secvență de evenimente:

Înregistrarea curentă • Înainte de actualizare • După actualizare • Înregistrare curentă.

Când ieșiți din înregistrarea modificată, dar înainte de a introduce o nouă înregistrare, apar evenimentele de ieșire și pierdere. Acestea apar pentru ultimul control pe care era focul. Aceste evenimente apar după evenimentele de upgrade și După upgrade:

Înainte de actualizare (pentru formular) • După actualizare (pentru formular) • Ieșire (pentru control) • Pierdere de focalizare (pentru control) • Înregistrare curentă (pentru formular).

Când transferați focalizarea de la un control la altul, evenimentele apar pentru fiecare dintre aceste elemente. De exemplu, este posibilă următoarea secvență de evenimente:

• Deschiderea formularului și modificarea datelor din control:

Înregistrare curentă (pentru formular) • Intrare (pentru control) • Primire focalizare (pentru control) • Înainte de actualizare (pentru control) • După actualizare (pentru control);

• Conversia focalizării la un alt control:

Intrare (pentru control) • Pierderea focalizării (pentru comanda 1) • Intrare (pentru comanda 2) • Obținerea focalizării (pentru comanda 2);

• Conversia focalizării la altă înregistrare:

Înainte de actualizare (pentru formular) • După actualizare (pentru formular) • Ieșire (pentru controlul 2) • Pierdere de focalizare (pentru controlul 2) • Înregistrare curentă (pentru formular).

Când un utilizator șterge o înregistrare, în formular apar următoarele evenimente:

Ștergere • Înainte de a confirma ștergerea • După confirmarea ștergerii.

Înainte de a face acest lucru, Microsoft Access afișează întotdeauna o casetă de dialog, solicitându-vă să confirmați ștergerea. Dacă utilizatorul anulează evenimentul Ștergere, evenimentele până la confirmarea ștergerii și după confirmarea ștergerii nu apar și caseta de dialog nu este afișată.

Creați o înregistrare nouă

Dacă utilizatorul mută focalizarea la o intrare nouă (goală) în formular sau creează o intrare nouă introducând caractere de la tastatură, evenimentele apar în următoarea ordine:

Înregistrare curentă (pentru formular) • Intrare (pentru control) • Focalizare (pentru control) • Înainte de introducere (pentru formular) • După introducere (pentru formular).

Rețineți că înainte și după actualizare, comenzile din formular și pentru noua înregistrare sunt ridicate după evenimentul Lipire înainte, dar înainte de evenimentul After Paste.

Ordinea evenimentelor de la tastatură și mouse

Evenimentele tastaturii apar în formulare bazate pe focalizare sau în controale de formă atunci când apăsați tastele sau când treceți comenzile tastaturii.

Evenimentele mouse-ului apar pentru formulare, formează partiții și comenzi în forme atunci când este apăsat butonul mouse-ului, dacă la acel punct pointerul este setat pe formular, secțiune de formular sau control.

Dacă se pune accentul pe controlul formularului și utilizatorul apasă și eliberează cheia sau execută comanda tastaturii care simulează o apăsare de tastă, apare următorul lanț de evenimente:

Tasta Jos • Apăsați tasta • Tasta Sus.

Când apăsați sau eliberați o tastă, precum și în executarea unei comenzi de tastatură, simbolul corespunzător din setul de ANSI, există întotdeauna evenimente cheie în jos Apăsați tasta și tasta sus. În cazul în care utilizatorul apasă și deține cheia ANSI (pentru modul ANSI, vezi capitolul 11.), există o secvență diferită de evenimente:

Tasta Jos • Apăsați tasta • Tasta Sus.

Aceasta continuă până când utilizatorul eliberează cheia; atunci va apărea evenimentul cheie Sus.

Când apăsați și eliberați o cheie care nu este o cheie ANSI, apar evenimente:

Tasta Jos • Tasta Sus.

Dacă utilizatorul apasă și ține o astfel de tastă, evenimentul Down apare și se repetă înainte de a-l elibera, iar evenimentul cheie Up apare atunci când este lansat.

Dacă este furnizat un eveniment de control diferit când este apăsată o tastă, acest eveniment apare după apăsarea tastei, dar înaintea tastei Sus. De exemplu, dacă o apăsare de tastă modifică textul în câmp, secvența evenimentelor este după cum urmează:

Tasta Jos • Apăsați tasta • Modificare • Tasta Sus.

Dacă o apăsare de tastă face ca focalizarea să fie transferată de la un control la altul, evenimentul Apare tasta în jos pentru primul control și evenimente Apăsați tasta și tasta Sus pentru a doua comandă. De exemplu, dacă utilizatorul modifică datele din control și apasă tasta TAB pentru a accesa următorul element, apar următoarele evenimente:

• pentru primul control:

Tasta Jos • Înainte de actualizare • După actualizare • Ieșire • Pierdere de focalizare;

• pentru al doilea control:

Intrare • Primirea focalizării • Apăsați tasta • Tasta Sus.

Dacă indicatorul mouse-ului este setat pe controlul formularului și utilizatorul apasă și eliberează butonul mouse-ului, apare următorul lanț de evenimente al comenzii:

Buton Jos • Buton Sus • Faceți clic pe buton.

Dacă focalizarea se face pe un singur control și utilizatorul stabilește indicatorul mouse-ului în altul și face clic pe buton cu ajutorul mouse-ului, apar următoarele evenimente:

• pentru primul control:

Ieșire • Pierdere de focalizare;

• pentru al doilea control:

Intrare • Focalizare • Buton Jos • Buton Sus • Faceți clic pe buton.

Dacă utilizatorul stabilește indicatorul mouse-ului pe un control în altă intrare și dă clic pe butonul mouse-ului, apoi pentru formular, Evenimentul înregistrării curente apare înaintea evenimentului Log On pentru control.

Dublu clic pe butonul mouse-ului cauzează două evenimente: Faceți dublu clic pe buton și faceți clic pe buton. De exemplu, dacă indicatorul este setat pe un control care nu este un buton, dublu-clic pe mouse-ul provoacă următorul lanț de evenimente pentru control:

Buton în jos • Buton Sus • Faceți clic pe buton • Faceți dublu clic pe buton • Butonul Sus.

Când faceți dublu clic pe butonul de comandă, aceste evenimente apar după cel de-al doilea eveniment. Faceți clic pe butonul.

Event Deplasarea cursorului mouse-ului într-o formă, secțiune sau control are loc atunci când indicatorul se deplasează prin formular, secțiune sau control. Acest eveniment nu depinde de alte evenimente ale mouse-ului.

Deschidere • Pornire • Oprire • Închidere.

Când treceți de la o fereastră de raport deschis la alta, apare evenimentul pentru primul raport și Activați pentru al doilea raport:

Dezactivați (pentru raportul 1) • Activați (pentru raportul 2).

Evenimentul De asemenea, raportul este dezactivat când treceți de la fereastra de raport la o altă fereastră Microsoft Access. Cu toate acestea, deconectarea nu are loc atunci când accesați caseta de dialog, în fereastra formularului în care este setată Da pentru proprietatea ferestrei pop-up sau în fereastra altei aplicații.

Când deschideți un raport care se bazează pe o interogare, Microsoft Access generează evenimentul Deschidere înainte ca interogarea de bază să fie executată. Din această cauză, puteți include criteriile de selecție în raport utilizând o procedură de procesare a macrocomenziilor sau a evenimentelor, deoarece acestea sunt declanșate ca răspuns la evenimentul Open. Procedura de procesare macro sau eveniment vă permite să deschideți o casetă de dialog specială prin care utilizatorul introduce în raport criteriile de selecție.

Raportați secțiunea Evenimente

Distribuiți această pagină







Articole similare

Trimiteți-le prietenilor: