Sunteți pe pagina 1din 4

Macrocomenzi Access – cateva consideratii si exemple

Pentru crearea unei macrocomenzi Access care sa includa o conditie se activeaza butonul Conditions din bara cu
instrumente:

Exemplu: sa se implementeze regula de validare Limita >= 0 sub forma unei macrocomenzi.
Macrocomanda astfel definita este salvata sub denumire macValidateLimita si are urmatoarea structura:

Actiunile care sunt executate daca


conditia este adevarata

Actiunile care sunt executate daca


conditia este falsa

Conditii Actiuni

Argumentele actiunii MsgBox


Message Limita de retragere corecta
Type Information

Argumentele actiunii MsgBox


Eroare: Limita trebuie sa fie
Message mai mare sau egala decat
zero
Type Critical
Macrocomanda macValidareLimita va fi asociata evenimentului BeforeUpdate (inainte de salvare) corespunzator controlului tip
caseta text (TextBox) txtLimita (control utilizat pentru introducerea su modificarea limitei de retragere pentru un card):

Evenimentul BeforeUpdate este generat înainte ca datele introduse(sau modificate) in(din) formular sa fie salvate in tabela
asociata formularului respectiv. Cu alte cuvinte evenimentele BeforeUpdate si AfterUpdate sunt generate in ordinea urmatoare:

Salvarea proriu-zisa a
datelor introduse sau
BeforeUpdate AfterUpdate
modificate din
formular in tabela

In acest caz evenimentului BeforeUpdate de la caseta text (TextBox) txtLimita îi este asociata macrocomanda
macValidateLimita iar formularului frmCard îi este asocitata tabela Card:
Salvarea datelor
txtLimita -> introduse/modificate
BeforeUpdate din formularul AfterUpdate
macValidareLimita frmCard în tabela
Card

Cu alte cuvinte, daca macrocomanda macValidareLimita asociata evenimentului BeforeUpdate (inainte de salvare) este executa
cu succes se realizeaza salvarea datelor din formular in tabela Card. Dar, daca pe parcursul executiei macValidareLimita este
intalnita “o situatie de eroare” atunci trebuie anulata operatiunea de salvare folosind actiunea CancelEvent (anuleaza
eveniment).
Macrocomanda anterioara poate fi descrisa folosind urmatoarea schema (logica):

BeforeUpdate
Start executie
macrocomanda
Daca conditia este falsa atunci se executa
conditie conditie actiunile:
adevarata falsa - CancelEvent care anuleaza executia
MsgBox txtLimita >= 0 CancelEvent evenimentului care a lansat in executie
macrocomanda macValidareLimita. Cu alte
cuvinte este anulat evenimentul BeforeUpdate.
Drept consecinta nu se va realiza in continuare
MsgBox salvarea datelor din formular in tabela Card si
StopMacro
ulterior nu se va mai genera evenimentul
AfterUpdate,
- MsgBox determina afisarea unei ferestre cu
urmatorul mesaj:
Stop executie
StopMacro
macrocomanda

Stop executie
macrocomanda

- StopMacro determina intreruperea executiei


Salvarea datelor introduse/modificate din formularul macrocomenzii curente.
frmCard în tabela Card

AfterUpdate

Daca conditia este adevarata atunci se executa actiunile:


- MsgBox care detemina afisarea unei ferestre cu urmatorul mesaj:

si
- StopMacro care determina oprirea executiei macrocomenzii macValidareLimita. Urmatoarea operatiune executata de catre
Access va fi salvarea datelor din formularul frmCard in tabela Card iar ulterior va fi generat evenimentul AfterUpdate (dupa
salvare).
Verificarea functionarii corecte a macrocomenzii macValidareLimita presupune parcurgerea urmatoarelor etape:
1 Deschiderea formularului frmCard in modul Form View

2 Introducerea in caseta text (TextBox) txtLimita a valorii -100

Butonul are asociata actiunea SaveRecord (salveaza


3 Click pe butonul Salveaza din frmCard
înregistrare):

4 Se executa macrocomanda macValidareLimita care anuleaza evenimentul BeforeUpdate si afiseaza mesajul urmator:

S-ar putea să vă placă și