Introducere în programarea Access

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ă oferă îndrumări despre instrumentele de programare din Access.

În acest articol

Ce este programarea?

Să utilizez macrocomenzi sau cod VBA?

Utilizarea expertului Buton de comandă pentru a efectua activități comune de programare

Înțelegerea macrocomenzilor

Înțelegerea codului VBA

Conversia macrocomenzilor la cod VBA

Ce este programarea?

În Access, programarea este procesul de a adăuga funcționalitate 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 macrocomandă pe care le puteți asambla utilizând Generatorul de macrocomenzi. Acțiunile de macrocomenzi Access reprezintă doar un subset al comenzilor 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. Trebuie să rețineți că, în articolele de ajutor Access, 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 mai pot fi declanșate și factori exteriori programului Access, cum ar fi evenimente 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.

Începutul paginii

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.

Decizia de a utiliza macrocomenzi sau cod VBA ar trebui să se bazeze pe două preocupări: securitatea și funcționalitatea pe care le doriți. Securitatea este o problemă, deoarece VBA se poate utiliza pentru a crea cod ce poate compromite securitatea datelor dvs. sau poate dăuna fișierelor de pe computer. Când utilizați o bază de date care a fost creată de altă persoană decât dvs., ar trebui să activați codul VBA numai dacă știți că baza de date provine de la o sursă de încredere. 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 ce necesită ca utilizatorul să acorde în mod specific o stare de încredere bazei de date. Tehnicile generale pentru a evita necesitatea ca utilizatorii să acorde încredere bazei de date sunt prezentate mai târziu î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

Începând cu ediția Access 2010, Access conține mai multe acțiuni de macrocomenzi noi care vă permit să creați macrocomenzi mai puternice decât puteați crea utilizând versiunile 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 doar prin utilizarea 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 vă 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 un alt program (cum ar fi Microsoft Excel) din cadrul Access, dar nu puteți utiliza o macrocomandă pentru a face prea 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ă.

Începutul paginii

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ă care este î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.

  1. Î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.

  2. Pe fila Proiectare, faceți clic pe săgeata îndreptată în jos pentru a afișa galeria Controale și apoi asigurați-vă că ați selectat Utilizare experți control.

  3. Pe fila Proiectare, în galeria Controale, faceți clic pe Buton.

  4. Î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ă.

  5. 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.

  6. 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 de buton de comandă pe care le oferă Access sau faceți clic pe Navigare pentru a selecta o imagine stocată în altă parte.

      Faceți clic pe Următorul.

  7. 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.

  8. Faceți clic pe Terminare.

    Access plasează butonul de comandă în formular.

  9. Dacă doriți să vedeți ceea ce expertul a „programat” pentru dvs., urmați acești pași opționali:

    1. Dacă foaia de proprietăți nu este afișată deja, apăsați F4 pentru a o afișa.

    2. Faceți clic pe fila Eveniment în foaia de proprietăți.

    3. În caseta proprietății La Clic, faceți clic pe butonul Generare Imagine buton .

      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, î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.

  10. Pe fila Proiectare, în grupul Vizualizări, faceți clic pe Vizualizare, apoi faceți clic pe Vizualizare formular. Faceți clic pe butonul de comandă nou pentru a confirma că funcționează așa cum vă așteptați.

Începutul paginii

Î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 cu care creați cod prin crearea unei liste 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.

Generatorul de macrocomenzi Access 2010

Notă : Rețineți că Generatorul de macrocomenzi din Access 2007 a fost diferit de cel din ilustrația de mai sus. În Access 2007, Generatorul de macrocomenzi era o serie de rânduri și coloane care listau diverse acțiuni ale macrocomenzii.

Pentru a afișa Generatorul de macrocomenzi:

  • În fila Creare, în grupul Macrocomenzi și cod, faceți clic pe Macrocomandă.

Începutul paginii

Înțelegerea codului VBA

La fel ca macrocomenzile, VBA vă permite să adăugați automatizare și alte funcționalități în aplicația Access. Puteți extinde codul VBA utilizând controale de la terți și vă puteți scrie propriile funcții și proceduri pentru cerințele dvs. specifice.

O modalitate rapidă de a începe lucrul cu programarea este să creați mai întâi o macrocomandă Access și apoi să efectuați conversia acesteia la 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 cuvintele cheie și să apăsați F1 pentru a deschide Ajutorul Access pentru dezvoltatori și a afla mai multe despre fiecare cuvânt cheie. Puteți să explorați Ajutorul Access pentru dezvoltatori și să descoperiți comenzile noi pentru a efectua activitățile de programare pe care le doriți.

Începutul paginii

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.

Notă : Puteți să adăugați cod Visual Basic for Applications (VBA) la o bază de date web; totuși, nu puteți rula acest cod în timp ce baza de date rulează într-un browser web. Dacă baza de date web conține cod VBA, trebuie mai întâi să deschideți baza de date web utilizând Access, înainte să puteți rula codul. Pentru a efectua activități de programare într-o bază de date web, utilizați în schimb macrocomenzi Access.

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.

  1. În Panoul de navigare, faceți clic dreapta pe formular sau pe raport și apoi faceți clic pe Vizualizare proiect.

  2. Pe fila Proiectare, în grupul Instrumente, faceți clic pe Conversie macrocomenzi din formular la Visual Basic sau pe Conversie macrocomenzi din raport la Visual Basic.

  3. Î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ă care a fost asociată cu formularul sau raportul. De asemenea, Acces modifică proprietățile de eveniment ale formularului sau raportului, astfel încât să ruleze procedurile VBA noi în locul macrocomenzilor.

  4. Pentru a vizualiza și a edita codul VBA:

    1. Î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.

    2. 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 Imagine buton . 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 eveniment î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

  1. Î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.

  2. Pe fila Proiectare, în grupul Instrumente, faceți clic pe Conversie macrocomenzi la Visual Basic.

  3. Î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.

  4. Pentru a vizualiza și a edita codul VBA:

    1. În Visual Basic Editor, dacă nu este afișat panoul Explorator de proiect, în meniul Vizualizare, faceți clic pe Explorator de proiect.

    2. Extindeți arborele de sub numele bazei de date în care lucrați.

    3. 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ă.

  1. Î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().

  2. Închideți Visual Basic Editor.

  3. Î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.

  4. Faceți clic pe controlul sau secțiunea cu care doriți să asociați funcția.

  5. Dacă foaia de proprietăți nu este afișată deja, apăsați F4 pentru a o afișa.

  6. 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.

  7. Î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.

  8. Salvați formularul sau raportul făcând clic pe Salvare pe bara de instrumente Acces rapid.

  9. Î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.

Începutul paginii

Extindeți-vă competențele
Explorați instruirea
Fiți primul care obține noile caracteristici
Alăturați-vă utilizatorilor Office Insider

Au fost utile aceste informații?

Vă mulțumim pentru feedback!

Vă mulțumim pentru feedback! Se pare că ar fi util să luați legătura cu unul dintre agenții noștri de asistență Office.

×