Când creați o nouă bază de date, de obicei începeți prin a crea mai multe obiecte de bază de date, cum ar fi tabele, formulare și rapoarte. La un moment dat este posibil să ajungeți într-un punct în care trebuie să adăugați puțină programare pentru a automatiza anumite procese și a lega între ele obiectele bazei de date. Acest articol vă ajută să vă orientați către instrumentele de programare din Access.
În acest articol
Ce este programarea?
În Access, programarea este procesul de adăugare a funcționalității la baza de date utilizând macrocomenzi Access sau cod Visual Basic for Applications (VBA). De exemplu, să presupunem că ați creat un formular și un raport și doriți să adăugați un buton de comandă la acel formular care, când se face clic pe el, deschide raportul. În acest caz, programarea este procesul de creare a unei macrocomenzi sau a unei proceduri VBA și apoi de a seta proprietatea de eveniment La Clic a butonului de comandă astfel încât clicul pe butonul de comandă să ruleze macrocomanda sau procedura. Pentru o operațiune simplă, cum ar fi deschiderea unui raport, puteți utiliza expertul Buton de comandă pentru a efectua tot lucrul, sau puteți să dezactivați expertul și să faceți singur programarea.
Notă: Mai multe programe Microsoft Office utilizează termenul „macrocomandă” pentru a face referire la cod VBA. Acest lucru poate fi derutant pentru utilizatorii Access, deoarece, în Access, termenul "macrocomandă" se referă la o colecție denumită de acțiuni de macrocomenzi pe care le puteți asambla utilizând Generatorul de macrocomenzi. Access acțiuni de macrocomandă reprezintă doar un subset de comenzi disponibile în VBA. Generatorul de macrocomenzi vă oferă o interfață mai structurată decât Visual Basic Editor, oferindu-vă posibilitatea de a adăuga programare la controale și obiecte fără a fi necesar să învățați cod VBA. Rețineți că, în Access articole de Ajutor, macrocomenzile Access sunt denumite macrocomenzi. În schimb, codul VBA este denumit VBA, cod, funcție sau procedură. Codul VBA se află în modulele de clasă (care fac parte din formulare sau rapoarte individuale și conțin de obicei cod doar pentru acele obiecte) și în module (care nu sunt legate de obiecte specifice și conțin de obicei cod „general” care poate fi utilizat în întreaga bază de date).
Obiectele (cum ar fi formularele și rapoartele) și controalele (cum ar fi butoanele de comandă și casetele text) au diverse proprietăți de eveniment la care puteți să atașați macrocomenzi sau proceduri. Fiecare proprietate de eveniment este asociată cu un anumit eveniment, cum ar fi un clic de mouse, deschiderea unui formular sau modificarea datelor dintr-o casetă text. Evenimentele pot fi declanșate și de factori din afara Access, cum ar fi evenimentele de sistem, sau de macrocomenzi sau proceduri atașate altor evenimente. Baza de date poate deveni mai complexă dacă adăugați mai multe macrocomenzi sau proceduri la câteva proprietăți de eveniment ale mai multor obiecte, dar, în majoritatea cazurilor, puteți obține rezultatele dorite utilizând foarte puțină programare.
Să utilizez macrocomenzi sau cod VBA?
Decizia de a utiliza macrocomenzi, cod VBA sau pe ambele depinde în principal de modul în care intenționați să implementați sau să distribuiți baza de date. De exemplu, dacă baza de date este stocată pe computerul dvs., sunteți singurul utilizator și nu aveți probleme cu utilizarea codului VBA, puteți decide să utilizați VBA pentru a efectua majoritatea activităților de programare. Totuși, dacă intenționați să partajați baza de date cu alte persoane amplasând-o pe un server de fișiere, se recomandă să evitați utilizarea codului VBA, din motive de securitate.
Ar trebui să vă bazați decizia de a utiliza macrocomenzi sau cod VBA pe două motive de îngrijorare: securitatea și funcționalitatea pe care le doriți. Securitatea este o problemă, deoarece VBA poate fi utilizat pentru a crea cod care fie compromite securitatea datelor, fie poate deteriora fișierele de pe computer. Atunci când utilizați o bază de date care a fost creată de altă persoană decât dvs., trebuie să activați codul VBA doar dacă știți că baza de date provine dintr-o sursă de încredere. Atunci când creați o bază de date care va fi utilizată de alte persoane, ar trebui să încercați să evitați includerea instrumentelor de programare care necesită ca utilizatorul să acorde în mod specific o stare de încredere bazei de date. Tehnicile generale de evitare a necesității ca utilizatorii să aibă încredere în baza dvs. de date apar mai jos în această secțiune.
Pentru a asigura securitatea bazei de date, ar trebui să încercați să utilizați macrocomenzi atunci când este posibil și să utilizați programare VBA doar pentru operațiunile care nu pot fi efectuate utilizând acțiuni de macrocomenzi. În plus, ar trebui să încercați să utilizați doar acțiuni de macrocomenzi care nu necesită acordarea stării de încredere bazei de date pentru a rula. Limitarea utilizării acțiunilor de macrocomenzi în acest mod le permite utilizatorilor să fie siguri că baza de date nu include programare ce le-ar putea afecta datele sau alte fișiere de pe computerele lor.
Considerente despre macrocomenzi
Access conține multe acțiuni noi de macrocomenzi care vă permit să construiți macrocomenzi mai puternice decât puteți construi utilizând versiuni anterioare de Access. De exemplu, acum puteți să creați și să utilizați variabile globale temporare utilizând acțiuni de macrocomenzi și să tratați erorile mai elegant utilizând noile acțiuni de macrocomenzi pentru tratarea erorilor. În versiunile anterioare de Access, aceste tipuri de caracteristici sunt disponibile numai utilizând VBA. În plus, puteți să încorporați o macrocomandă direct în proprietatea de eveniment a unui obiect sau control. O macrocomandă încorporată devine parte a obiectului sau controlului și rămâne cu obiectul sau controlul dacă acesta este mutat sau copiat.
Macrocomenzile oferă o modalitate simplă de a gestiona multe activități de programare, cum ar fi deschiderea și închiderea formularelor și rularea rapoartelor. Puteți lega rapid și ușor obiecte ale bazei de date (formulare, rapoarte și așa mai departe) pe care le-ați creat, deoarece există puțină sintaxă pe care trebuie să o rețineți. Argumentele pentru fiecare acțiune sunt afișate în Generatorul de macrocomenzi.
În plus față de securitatea sporită și simplitatea utilizării pe care le furnizează macrocomenzile, trebuie să utilizați macrocomenzi pentru a efectua următoarele activități:
-
Atribuiți o acțiune sau un set de acțiuni pentru o tastă. Acest lucru necesită crearea unui grup de macrocomenzi denumit AutoKeys.
-
Efectuați o acțiune sau o serie de acțiuni atunci când se deschide pentru prima dată o bază de date. Acest lucru necesită crearea unei macrocomenzi denumite AutoExec.
Notă: Macrocomanda AutoExec rulează înainte de orice altă macrocomandă sau de oricare alt cod VBA, chiar dacă ați desemnat un formular de pornire în caseta de dialog Opțiuni Access și ați atașat o macrocomandă sau un cod VBA la evenimentul La Deschidere sau La Încărcare al acelui formular.
Pentru mai multe informații despre cum să creați macrocomenzi, consultați secțiunea Înțelegerea macrocomenzilor.
Considerente despre VBA
Ar trebui să utilizați programare VBA în loc de macrocomenzi dacă doriți să efectuați oricare dintre următoarele activități:
-
Utilizați funcții predefinite sau creați propriile funcții Access include multe funcții predefinite, cum ar fi funcția IPmt , care calculează plata unei dobânzi. Puteți utiliza aceste funcții predefinite pentru a efectua calcule fără a fi necesar să creați expresii complicate. De asemenea, utilizând cod VBA, vă puteți crea propriile funcții pentru a efectua calcule care depășesc capacitatea unei expresii sau pentru a înlocui expresii complexe. În plus, puteți utiliza funcțiile pe care le creați în expresii pentru a aplica o operațiune comună la mai multe obiecte.
-
Creați sau manipulați obiecte În majoritatea cazurilor, veți descoperi că este mai simplu să creați și să modificați un obiect în vizualizarea Proiect a obiectului respectiv. În unele situații însă, se recomandă să manipulați definiția unui obiect prin cod. Utilizând VBA, puteți manevra toate obiectele dintr-o bază de date, în plus față de baza de date propriu-zisă.
-
Efectuați acțiuni la nivel de sistem Puteți efectua acțiunea RulareAplicație într-o macrocomandă pentru a rula alt program (cum ar fi Microsoft Excel) din Access, dar nu puteți utiliza o macrocomandă pentru a face multe în afara Access. Utilizând VBA, puteți să verificați dacă un fișier există pe computer, puteți să utilizați automatizarea sau schimbul dinamic de date (DDE) pentru a comunica cu alte programe bazate pe Microsoft Windows, cum ar fi Excel, și să utilizați funcții din bibliotecile de legături dinamice (DLL) Windows.
-
Manipulați înregistrările câte una odată Puteți utiliza VBA pentru a parcurge pe rând înregistrările dintr-un set de înregistrări și a efectua o operațiune pentru fiecare înregistrare. În schimb, macrocomenzile funcționează cu seturi întregi de înregistrări o dată.
Utilizarea expertului Buton de comandă pentru a efectua activități comune de programare
Dacă adăugați un buton de comandă la un formular, expertul Buton de comandă vă poate ajuta să începeți cu programarea. Expertul vă ajută să creați un buton de comandă care efectuează o anumită activitate. Într-un fișier Access (.accdb), expertul creează o macrocomandă încorporată în proprietatea La Clic a butonului de comandă. Într-un fișier .mdb sau .adp, expertul creează cod VBA, deoarece macrocomenzile încorporate nu sunt disponibile în aceste formate de fișier. În oricare din cazuri, puteți apoi să modificați sau să îmbunătățiți macrocomanda sau codul VBA pentru a se potrivi mai bine necesităților dvs.
-
În panoul de navigare, faceți clic dreapta pe formularul la care doriți să adăugați butonul de comandă, apoi faceți clic pe Vizualizare proiect.
-
Pe fila Proiectare formular , faceți clic pe săgeata în jos pentru a afișa galeria Controale , apoi asigurați-vă că ați selectat Utilizare experți control .
-
Pe fila Proiectare formular , în galeria Controale , faceți clic pe Buton.
-
În grila de proiectare a formularului, faceți clic acolo unde doriți să fie plasat butonul de comandă.
Pornește expertul Buton de comandă.
-
Pe prima pagină a expertului, faceți clic pe fiecare categorie din lista Categorii pentru a vedea ce acțiuni poate programa expertul să efectueze butonul de comandă. În lista Acțiuni, selectați acțiunea pe care o doriți, apoi faceți clic pe Următorul.
-
Faceți clic pe opțiunea Text sau pe opțiunea Imagine, în funcție de ceea ce doriți - un text sau o imagine, să se afișeze pe butonul de comandă.
-
Dacă doriți să se afișeze text, puteți să editați textul în caseta de lângă opțiunea Text.
-
Dacă doriți să se afișeze o imagine, expertul sugerează o imagine din listă. Dacă doriți să selectați o altă imagine, bifați caseta de selectare Afișați toate imaginile pentru a afișa o listă cu toate imaginile butonului de comandă pe care Access le furnizează sau faceți clic pe Răsfoire pentru a selecta o imagine stocată în altă parte.
Faceți clic pe Următorul.
-
-
Introduceți un nume semnificativ pentru butonul de comandă. Acesta este un pas opțional, iar acest nume nu se afișează pe butonul de comandă. Totuși, este o idee bună să introduceți un nume semnificativ, astfel încât, atunci când trebuie să faceți referire la butonul de comandă mai târziu (de exemplu, dacă setați ordinea de tabulare pentru controalele din formular), să fie mult mai ușor de diferențiat între butoanele de comandă. De exemplu, dacă butonul de comandă închide formularul, îl puteți denumi cmdÎnchidere sau ComandăÎnchidere.
-
Faceți clic pe Terminare.
Access plasează butonul de comandă în formular.
-
Dacă doriți să vedeți ceea ce expertul a „programat” pentru dvs., urmați acești pași opționali:
-
Dacă foaia de proprietăți nu este afișată deja, apăsați F4 pentru a o afișa.
-
Faceți clic pe fila Eveniment în foaia de proprietăți.
-
În caseta proprietății La Clic , faceți clic pe butonul Generare .
Access pornește Generatorul de macrocomenzi și afișează macrocomanda creată de expert. Puteți să editați macrocomanda dacă doriți (pentru mai multe informații despre cum să editați o macrocomandă, consultați secțiunea Înțelegerea macrocomenzilor). Când ați terminat, pe fila Proiectare macrocomenzi , în grupul Închidere , faceți clic pe Închidere pentru a închide Generatorul de macrocomenzi. Dacă Access vă solicită să salvați modificările și să actualizați proprietatea, faceți clic pe Da pentru a salva modificările sau pe Nu pentru a respinge modificările.
-
-
Pe fila Proiectare formular , în grupul Vizualizări , faceți clic pe Vizualizare, apoi pe Vizualizare formular. Faceți clic pe butonul de comandă nou pentru a confirma că funcționează așa cum vă așteptați.
Înțelegerea macrocomenzilor
O macrocomandă este un instrument care vă permite să automatizați activitățile și să adăugați funcționalitate la formulare, rapoarte și controale. De exemplu, dacă adăugați un buton de comandă la un formular, puteți asocia proprietatea de eveniment La Clic a butonului la o macrocomandă care conține comenzile pe care doriți să le efectueze butonul de fiecare dată când se face clic pe el.
Este util să vă gândiți la macrocomenzile Access ca la un limbaj de programare simplificat în care să creați cod, construind o listă de acțiuni de efectuat. Atunci când creați o macrocomandă, selectați fiecare acțiune dintr-o listă verticală și apoi completați informațiile necesare pentru fiecare acțiune. Macrocomenzile vă permit să adăugați funcționalitate la formulare, rapoarte și controale fără a scrie cod într-un modul VBA. Macrocomenzile furnizează un subset de comenzi care sunt disponibile în VBA și majoritatea persoanelor consideră mai simplu să creeze o macrocomandă decât să scrie cod VBA.
O macrocomandă se creează utilizând Generatorul de macrocomenzi, afișat în ilustrația următoare.
Pentru a afișa Generatorul de macrocomenzi:
-
În fila Creare, în grupul Macrocomenzi și cod, faceți clic pe Macrocomandă.
Înțelegerea codului VBA
La fel ca macrocomenzile, VBA vă permite să adăugați automatizare și alte funcționalități la aplicația Access. Puteți extinde VBA utilizând controale de la terți și vă puteți scrie propriile funcții și proceduri pentru necesitățile dvs. specifice.
O modalitate rapidă de a începe cu programarea VBA este să construiți mai întâi o macrocomandă Access, apoi să o convertiți în cod VBA. Instrucțiunile pentru a efectua acest lucru sunt incluse în secțiunea Conversia macrocomenzilor la cod VBA. Această caracteristică creează un modul VBA nou care efectuează operațiunile echivalente din macrocomandă. De asemenea, deschide Visual Basic Editor, ca să puteți începe modificarea procedurii. Atunci când lucrați în Visual Basic Editor, puteți să faceți clic pe cuvinte cheie și să apăsați F1 pentru a începe Access Ajutor pentru dezvoltatori și aflați mai multe despre fiecare cuvânt cheie. Apoi puteți să explorați ajutorul Access pentru dezvoltatori și să descoperiți comenzi noi, pentru a vă ajuta să efectuați activitățile de programare dorite.
Conversia macrocomenzilor la cod VBA
Puteți utiliza Access pentru a efectua automat conversia macrocomenzilor la module VBA sau la module de clasă. Puteți efectua conversia macrocomenzilor atașate la un formular sau la un raport, indiferent dacă acestea există ca obiecte individuale sau ca macrocomenzi încorporate. De asemenea, puteți efectua conversia macrocomenzilor globale care nu sunt atașate la un anumit formular sau raport.
Conversia macrocomenzilor atașate la un formular sau un raport
Acest proces efectuează conversia la VBA a oricăror macrocomenzi la care se face referire (sau care sunt încorporate) dintr-un formular sau un raport (sau a oricăror controale din acestea) și adaugă codul VBA la modulul de clasă al formularului sau raportului. Modulul de clasă devine parte a formularului sau raportului și este mutat cu acesta dacă se efectuează o mutare sau o copiere a formularului sau raportului.
-
În Panoul de navigare, faceți clic dreapta pe formular sau pe raport și apoi faceți clic pe Vizualizare proiect.
-
Pe fila Proiectare formular , în grupul Instrumente , faceți clic pe Conversie macrocomenzi din formular la Visual Basic sau pe Conversie macrocomenzi din raport la Visual Basic.
-
În caseta de dialog Conversie din macrocomenzile formularului sau Conversie din macrocomenzile raportului , selectați dacă doriți ca Access să adauge cod de tratare a erorilor la funcțiile pe care le generează. De asemenea, dacă aveți orice comentarii în macrocomenzile dvs., selectați dacă doriți să le includeți drept comentarii în funcții. Faceți clic pe Conversie pentru a continua.
Dacă nu există niciun modul de clasă pentru formular sau raport, Access creează unul și adaugă o procedură la modul pentru fiecare macrocomandă asociată cu formularul sau raportul. Access modifică și proprietățile de eveniment ale formularului sau raportului, astfel încât să ruleze procedurile VBA noi în locul macrocomenzilor.
-
Pentru a vizualiza și a edita codul VBA:
-
În timp ce formularul sau raportul este deschis încă în Vizualizarea proiect, dacă foaia de proprietăți nu este afișată deja, apăsați F4 pentru a o afișa.
-
Pe fila Eveniment din foaia de proprietăți, faceți clic în orice casetă de proprietăți care afișează [Procedură eveniment], apoi faceți clic pe butonul Generare . Pentru a vizualiza proprietățile de eveniment pentru un anumit control, faceți clic pe control pentru a-l selecta. Pentru a vizualiza proprietățile de eveniment pentru întregul formular sau raport, selectați Formular sau Raport din lista verticală din partea de sus a foii de proprietăți.
Access deschide Visual Basic Editor și afișează procedura evenimentului în modulul său de clasă. Puteți defila în sus sau în jos pentru a vizualiza orice alte proceduri din același modul de clasă.
-
Conversia macrocomenzilor globale
-
În Panoul de navigare, faceți clic dreapta pe macrocomanda căreia doriți să îi efectuați conversia, apoi faceți clic pe Vizualizare proiect.
-
Pe fila Proiectare macrocomandă , în grupul Instrumente , faceți clic pe Conversie macrocomenzi la Visual Basic.
-
În caseta de dialog Conversie macrocomandă, selectați opțiunile pe care le doriți, apoi faceți clic pe Conversie.
Access efectuează conversia macrocomenzii și deschide Visual Basic Editor.
-
Pentru a vizualiza și a edita codul VBA:
-
În Visual Basic Editor, dacă nu este afișat panoul Explorator de proiect, în meniul Vizualizare, faceți clic pe Explorator de proiect.
-
Extindeți arborele de sub numele bazei de date în care lucrați.
-
Sub Module, faceți dublu clic pe modulul Macrocomandă convertită- nume macrocomandă.
Visual Basic Editor deschide modulul.
-
Atașarea unei funcții VBA la o proprietate de eveniment
Când efectuați conversia unei macrocomenzi globale la VBA, codul VBA este plasat într-un modul standard. Spre deosebire de un modul de clasă, un modul standard nu face parte dintr-un formular sau raport. Cel mai probabil, veți dori să asociați funcția cu o proprietate de eveniment dintr-un formular, raport sau control, astfel încât codul să ruleze exact atunci când și unde doriți. Pentru a face acest lucru, puteți să copiați codul VBA într-un modul de clasă și apoi să îl asociați unei proprietăți de eveniment sau puteți face un apel special din proprietatea de eveniment către modulul standard, utilizând următoarea procedură.
-
În Visual Basic Editor, rețineți numele funcției. De exemplu, dacă ați efectuat conversia unei macrocomenzi denumite MacrocomandaMea, numele funcției va fi MacrocomandaMea().
-
Închideți Visual Basic Editor.
-
În Panoul de navigare, faceți clic dreapta pe formularul sau raportul căruia doriți să îi asociați funcția, apoi faceți clic pe Vizualizare proiect.
-
Faceți clic pe controlul sau secțiunea cu care doriți să asociați funcția.
-
Dacă foaia de proprietăți nu este afișată deja, apăsați F4 pentru a o afișa.
-
Pe fila Eveniment a foii de proprietăți, faceți clic pe caseta de proprietăți a evenimentului cu care doriți să asociați funcția.
-
În caseta de proprietăți, tastați un semn egal (=) urmat de numele funcției, de exemplu, =MacrocomandaMea(). Nu uitați să includeți parantezele.
-
Salvați formularul sau raportul făcând clic pe Salvare pe bara de instrumente Acces rapid.
-
În Panoul de navigare, faceți dublu clic pe formular sau pe raport și testați-l pentru a vedea dacă rulează codul așa cum ar trebui.
Acum știți pașii de bază pentru a adăuga cod VBA la baza de date. Acest articol descrie doar noțiunile de bază despre cum să începeți lucrul; există multe cărți de referință și resurse online excelente care vă pot ajuta să vă dezvoltați abilitățile de programare.
Consultați și
Crearea unei macrocomenzi de interfață utilizator
Rularea unei macrocomenzi Access utilizând o comandă rapidă de la tastatură
Automatizarea evenimentelor de pornire cu o macrocomandă
Crearea unei macrocomenzi care să ruleze atunci când deschideți o bază de date