Această carte vă va ajuta să stăpâniți mediul de dezvoltare integrat VBA și să învățați cum să programați în VBA folosind obiecte, proprietăți, metode și evenimente. Metodele de programare discutate sunt ilustrate prin exemple care pot fi testate imediat în practică. Puteți aplica aceste cunoștințe atât pentru crearea și îmbunătățirea aplicațiilor de birou populare, inclusiv pentru aplicațiile Office XP, cât și pentru crearea propriilor aplicații.
Cartea este concepută pentru cei care vor să învețe rapid și fără prea mult efort să învețe cum să programeze pentru Windows utilizând VBA.
Carte: VBA pentru Dummies
Lucrul cu obiectele Recordset
Lucrul cu obiectele Recordset
Să ne familiarizăm cu obiectele Recordset: le folosiți atunci când efectuați operații de date fundamentale. Obiectul Recordset este un container care conține date primite de la o sursă de date. Deoarece ar trebui să fie un container, un obiect Recordset poate conține diferite înregistrări la momente diferite.
După ce ați declarat o variabilă pentru obiectul Recordset, puteți începe imediat să lucrați cu proprietățile sale. Cu toate acestea, în acest moment există doar "practic". Pentru a umple un container gol cu date reale, utilizați una dintre următoarele metode:
* Metoda proprie a obiectului Open de Recordset;
* Execute metoda obiectului Command;
* Metoda Execute a obiectului Connection.
Cea mai simplă modalitate de a crea un obiect Recordset este să utilizați metoda Open a acestui obiect. Metoda Open funcționează bine dacă folosiți simple instrucțiuni Select pentru a obține intrările necesare. Următorul fragment de cod demonstrează setarea obiectului Recordset utilizând metoda Open:
Dim conman Ca noua conexiune
Dimensiuni ca înregistrări
Dim strSQL ca șir
(acesta conține codul folosit pentru a crea obiectul de conexiune conMan) strSQL = "SELECT * FROM Toys" "selectarea întregii mese de către Toys
Setați rstMan.ActiveConnection = conman
rstMan.Open strSQL. adOpenForwardOnly, adLockReadOnly, _
Rețineți că fragmentul de cod de mai sus conectează conexiunea la obiectul Recordset utilizând proprietatea ActiveConnection a ultimei. În plus, rețineți că parametrii care controlează comportamentul obiectului sunt specificați ca argumente pentru metoda Open.
Instrucțiunile SQL SELECT nu sunt întotdeauna potrivite. În aplicațiile client / server, eficacitatea adesea dictează nevoia de a crea obiecte Recordset executând proceduri (interogări). Dacă o astfel de procedură necesită anumiți parametri, în această situație este convenabil să utilizați obiectul Command pentru a crea obiectul Recordset.
Mai întâi, configurați obiectul Command, atribuindu-i proprietății ActiveConnection o valoare corespunzătoare conexiunii necesare. După aceea, puteți acorda atenție obiectului Recordset. În acest caz, trebuie mai întâi să definiți parametrii acestui obiect ca proprietăți. Apoi, populați obiectul Recordset cu intrări, utilizând rezultatele executării metodei Execute a obiectului Command. Exemplul corespunzător este prezentat mai jos:
ConTest ca o nouă conexiune
Dim cmdTest ca comandă nouă
Dimensiuni ca înregistrări
Dim strSQL ca șir
(codul care creează obiectul de conectare la concurs
și specificând șirul strSQL)
'Crearea obiectului Command:
Setați .ActiveConnection = concurs
Setați rstTest = cmdTest.Execute ()
Ultima metodă pentru crearea obiectelor Recordset este utilizarea metodei Execute a obiectului Connection. Această abordare este mult mai ușoară decât utilizarea obiectului Conectare, în plus, vă permite să lucrați cu proceduri stocate. Cu toate acestea, dacă aveți nevoie de anumiți parametri pentru a efectua procedurile, trebuie să includeți acești parametri în instrucțiunea SQL. Toate acestea sunt ilustrate în următorul exemplu de cod:
CONVERT DIMENSIUNE Ca noua conexiune
Dim rstVert Ca Recordset
Dim strSQL ca șir
(codul care creează obiectul conexiunii conVert
și specificând șirul strSQL)
Setați rstVert - conVert.Execute ()
Dacă știți că este necesară o conexiune pentru un singur obiect Recordset, crearea preliminară a unei conexiuni nu va oferi niciun avantaj.
În schimb, puteți specifica șirul de conexiuni drept al doilea argument al metodei
Deschideți obiectul Recordset, după cum se arată mai jos:
Dimensiune rstInPeace ca nou recordet
Dim strSQL Ca String, strConnect ca șir de strSQL = "SELECT * FROM Bicicletele" „Obținerea de toate intrările de cod 1, atribuindu-i un șir de conexiune variabilă strConnect rstInPeace.Open strSQL, strConnect, adOpenForwardOnly