Sunteți pe pagina 1din 3

Macrocomenzi Access

Exemplu: sa se implementeze regula de validare conform careia un cont poate avea asociat un singur card principal
(card care are limita zero).

Macrocomanda astfel definita este salvata sub denumire macValidare si are urmatoarea structura:

Aceasta macrocomanda este asociata evenimentului Before Update aferent formularului frmCard (cu alte cuvinte
aceasta macrocomanda va fi activata inainte de salvarea datelor din formularul frmCard in tabela Card):

Mai precis, cand se face click pe butonul de pe formularul frmCard, se activeaza

evenimentul Before Update (inainte de salvare) care in continuare activeaza macrocomanda macValidare.
Explicatii:

lstNrCont

txtLimita

pagina urmatoare
Functia IsNull verifica daca o valoarea este nulă sau nu. In acest caz, functia IsNull verifica
daca a fost completat nr. contului, mai precis se verifica daca a fost selectat un cont din
lista. Functia IsNull returneaza valoarea True daca nu a fost completat / selectat nr. contului
si valoarea False daca a fost completat/selectat.

Daca conditia este adevarata, cu alte cuvinte daca nu a fost completat/selectat numarul
contului atunci se anuleaza evenimentul Before Update (inainte de salvare) iar salvarea
datelor in tabela nu se va mai realiza.

Message Eroare: trebuie selectat un cont din lista

(…) Daca conditia de mai sus este adevarata ( daca nu a fost completat/selectat nr.
contului) atunci se afiseaza un mesaj (actiunea MsgBox).

(…) Daca conditia de mai sus este adevarata ( daca nu a fost completat/selectat nr.
contului) atunci se opreste din executie macrocomanda. Cu alte cuvinte, daca nu a fost
completat/selectat nr. contului se opreste executia macrocomenzii macValidare.

Daca a NU fost completata limita se anuleaza evenimentul Before Update (inainte de


salvare) + se afiseaza un mesaj de eroare (Message Eroare: trebuie completata limita de
retragere) + se opreste din executie macrocomanda macValidare.

ATENTIE: macrocomanda este activata inainte de salvarea (Before Update) datelor in


tabela Card.

Se verifica daca s-a introdus limita zero (limita zero indica faptul ca respectivul card este
cardul principal pentru contul selectat) si daca pentru contul selectat din lista lstNrCont,
numarul de carduri principale (Card.Limita = 0) este 1 (se verifica daca exista contul are
deja un card principal).

Daca ambele conditii sunt adevarate, atunci se anuleaza evenimentul Before Update, ceea
ce conduce la anularea operatiunii de Update: se anuleaza operatiunea de salvare a
datelor din formularul frmCard in tabela Card.

Suplimentar, daca ambele conditii sunt adevarate, atunci se afiseaza un mesaj de eroare
(Message Eroare: un cont poate avea un singur card principal (card care are limita 0)) + se
opreste din executie macrocomanda macValidare.

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