Baze de date
Principiile utilizarii obiectelor si colectiilorPrincipiile utilizarii obiectelor si colectiilorProprietati Acestea servesc la descrierea obiectelor. Anumite proprietati sunt Read Only si nu pot fi modificate de codul VBA. Sintaxa .<proprietate> Proprietatile referitoare la obiecte Obiectele globale si cele scrise in cod pornind de la clasele furnizate de VBA, poseda proprietati a caror valoare este actualizata automat de sistem.
MetodeAcestea permit efectuarea actiunilor proprii obiectelor. Codul program VBA este scris in unitati de program denumite proceduri. O procedura contine o serie de instructiuni VBA care efectueaza o operatie sau calculeaza o valoare. O procedura eveniment este o procedura care se executa ca raspuns la un eveniment initiat de un cod al utilizatorului sau al programului, sau lansata de sistem. Un eveniment este o actiune specifica care are loc in sau cu un anumit obiect. Evenimentele sunt in general rezultatul actiunilor utilizatorilor dar pot fi si ale sistemului. Cu ajutorul unei proceduri eveniment, avem posibilitatea de a adauga propriile raspunsuri particularizate ca raspuns la un eveniment care are loc intr-un formular, raport sau control. O procedura este o parte de cod program care contine o succesiune de instructiuni. Metodele se prezinta ca si proceduri: pot sau nu folosi argumente, anumite metode pot returna o valoare (la fel ca si procedurile Function), altele nu (ca si procedurile Sub). Sintaxa unei metode ce nu returneaza o valoare . <metode> [ <liste de argumente>] Sintaxa unei metode ce returneaza o valoare Variabila = . <metode> [<liste de argumente>] Evenimentele Un eveniment este o actiune specifica un obiect. Microsoft Access este in masura sa raspunda la mai multe tipuri de evenimente: deschiderea sau inchiderea formularelor, clic mouse, modificarea datelor etc. Utilizarea unei proceduri eveniment permite asocierea propriului cod ca raspuns la un eveniment ce are loc intr-un formular, raport sau control. Exemplu: Cand utilizatorul da clic pe butonul de comanda Quit, este afisata o casuta de dialog cerand o confirmare. Private Sub cmdTerminare_Click() If MsgBox (Prompt:=”Doriti sa parasiti aplicatia ?”, _ + vbQestion + vbYesNo,_Then DoCmd.Quit End If End Sub Colectii Pentru a face o referinta la obiectul unei colectii, se poate folosi una din sintaxele urmatoare: NameCollection! NameObject NameCollection! [NameObject] NameCollection! („NameObject”) NameCollection (var) unde „var” reprezinta o variabila de tipul String ce contine numele obiectului. NameCollection (index) unde index reprezinta numarul de index in colectie al obiectului. Pentru a asigura o mai buna lizibilitate a codului se recomanda folosire aceleiasi sintaxe. Observatie: Atentie la primul element din majoritatea colectiilor care are indexul 0. Indexul nu se foloseste decat pentru parcurgerea unei colectii. Se recomanda evitarea, de exemplu, Me.controls (5) pentru a face referinta la un control fiindca indexul unui control se poate schimba daca formularul este modificat. Exemple Referinta la controlul txtDataDeb al formularului Formation (Collections Forms and Controls): MsgBox Forms (“Formations”).Controls (txtDateDeb”).Value sau MsgBox Forms! Formations.Controls! [txtDateDeb].Value Data crearii unui tabel al bazei curente (Collection AllTabels): MsgBox CurrentData.AllTables![Formations].DataCreated MsgBox CurrentData.AllTables(„Formations”).DataCreated Parcurgerea unei colectii. Acest cod modifica fontul si culoarea zonelor control din text: Dim Ctl As Control Dim intI As Integer For intI = 0 To Me.Controls.Count – 1 Set Ctl = Me.Controls(intI) If TypeOf Ctl Is TextBox Then Ctl.ForeColor = vbBlue Ctl.FontItalic = True Ctl.FontBold = True End If Next intI Colectiile by default Definitie O colectie by default (implicit) contine obiecte la care se poate face referinta prin intermediul obiectului colectiei, adica fara a face referinta direct la colectie. Obiecte ce poseda o colectie by default
Exemplu: Referinta la controlul txtDateDeb al formularului Formations (colectia Controls este colectia by default a unui formular). Forms! [Formulations].[txtDateDeb].Value Sau Forms! Formulations.txtDateDeb.Value sau Forms! Formulations! txtDateDeb.Value
|