Baze de date
Instructiuni utilizate cu obiecte in VBAInstructiuni utilizate cu obiecte in VBAINSTRUCTIUNEA WITH Permite accesul repetat la acelasi obiect numindu-l doar o singura data. Ofera mai multe avantaje. - optimizeaza timpul de executare a codului, - castiga timp in scriereea codului, - face codul mai lizibil. Sintaxa: With <object> <cod utilizand metode si proprietati> <ce se raporteaza la obiect> EndWith Exemplu Obiect formular activ With Screen.ActiveForm .Caption = „Formular de plata” .Controls(„CmdValidare”).Enabled = False GoToPage2 EndWith INSTRUCTIUNEA FOR EACHNEXT Permite trecerea in revista a obiectelor unei colectii sau a elementelor unui tabel. Sintaxa: For Each <element> In <tabel>|<colectie> <secventa de instructiuni> [Exit For] <secventa de instructiuni> Next <element> Exemplu Exemplul urmator permite atribuirea unei culori de font fiecarui Control al formularului „Angajat”, in functie de tipul sau (proprietate ControlType). De asemenea, acesta foloseste colectia by default al obiectului Form (Screen .ActiveForm .Controls) Dim ctl As Control For Each ctl In Screen.ActiveForm Parcurgerea controalelor formularului activ With ctl Select Case.Control Type ` Etichete Case acLabel .ForeColor = vbBlue ` Zone de text Case acTextBox .Forecolor = vbYellow ` Liste derulante Case acListBox, acComboBox .ForeColor =vbRed EndSelect EndWith Nextctl 3.4.3. INSTRUCTIUNEA IFTYPE OF Permite testarea tipului de obiect.
Sintaxa: If TypeOf <object> Is <TypeObject> Then <cod ce foloseste metode si proprietati> <ce se raporteaza la obiect> EndIf Exemplu If TypeOf ctl Is acListBox Then INSTRUCTIUNEA SET Permite atribuirea unei referinte de obiect unei variabile, numite variabila obiect. Aceasta instructiune poate fi utilizata pentru crearea unei referinte spre un obiect nou (utilizand eventual o metoda ce permite crearea unui obiect) sau pentru atribuire unei referinte unui obiect deja existent. Sintaxa: Crearea unei referinte la un obiect nou Set <NameObject> = New <expression object> sau Set <NameObject> = <metode ce permit crearea unui obiect> <NameObject> numele variabilei obiect <expression object> numele unui obiect sau a unei variabile obiect de acelasi tip. Cuvantul cheie New permite crearea unei noi instante de clasa. Daca variabila obiect contine deja o referinta, aceasta este stearsa. Observatie: Nu se poate folosi cuvantul cheie New pentru a face referinta la un obiect decat daca componenta ActiveX a obiectului furnizeaza o bibilioteca (ex: obiecte ADO, obiecte Excel). Atribuirea unei referinte unui obiect existent Set <NameObject> = <expresie obiect> <NameObject> numele variabilei obiect <expression object> numele unui obiect sau a unei variabile obiect de acelasi tip. Reinitializarea variabilelor obiect Set <NameObject> = Nothing Nothing permite reinitializarea variabilei obiect si eliberarea totalitatii resurselor sistem si memorie asociate obiectului. Exemple Crearea referintelor la un obiect nou. Exemplele 1 si 2 permit crearea unui index nou sau completarea bazei de date curente. Pentru efectuarea acestor exemple, trebuie selectata referinta proiectului Microsoft DAO 3.6 Object Library. (Tools-References) Exemplul 1: Utilizarea cuvantului cheie New Dim tdfClient As DAO.tabledef Dim fld As DAO.Field ` Creeaza definitia tabelului Set tdfClient = New DAO.tabledef tdfClient.Name = „Clienti” ` Creeaza primul camp Set fld = New DAO.Field With fld .Name = „Cli_Nume” .Type = dbText .Size = 40 End With tdfClient.Fields.Append fld ` Creeaza al doilea camp Set fld = New DAO.Field With fld .Name = „Cli_Efectivi” .Type = dbInteger End With tdfClient.Fields.Append fld `Adauga tabelul la baza de date curenta Application.CurrentDb.TableDefs.Append tdfClient `Reinitializeaza variabila obiect Set tdfClient = Nothing Set fld = Nothing Exemplul 2: Aceeasi prelucrare a datelor, utilizand metodele Dim tdfClient As DAO.tabledef Dim fld As DAO.Field ` Creaza definitia tabelului Set tdfClient = CurrentDb.CreateTableDef(„Clienti”) With tdfClient ` Creaza primul camp Set fld =.CreateField(„Clienti_Nume”,dbText,40) .Fields.Append fld ` Creaza al doilea camp Set fld =.CreateField(„Clienti_efectiv”,dbInteger) End With `Adauga tabelul la baza de date curenta CurrentDb.TableDefs.Append tdfClient `Reinitializeaza variabila obiect Set fld = Nothing Set tdfClient = Nothing Exemplul 3: Crearea unui formular cu o zona de texte si eticheta.
|