Introducere în programarea Access

Se aplică la
Access pentru Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Când creați o nouă bază de date, de obicei începeți prin a crea obiecte de bază de date, cum ar fi tabele, formulare și rapoarte. La un moment dat, poate fi necesar să adăugați programare pentru a automatiza procesele și a conecta obiectele respective. Acest articol prezintă instrumentele de programare din Access.

În acest articol

Ce este programarea?

În Access, programare înseamnă adăugarea de funcționalitate la baza de date utilizând macrocomenzi Access sau cod Visual Basic for Applications ().VBA De exemplu, puteți să creați un formular și un raport, apoi să adăugați un buton de comandă la formularul care deschide raportul atunci când îl selectați. În acest caz, creați o macrocomandă sau VBA o procedură, apoi setați proprietatea de eveniment a butonului de OnClick comandă astfel încât 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 activitatea sau puteți să dezactivați expertul și să îl programați singur.

Notă

Mai multe programe Microsoft Office utilizează termenul "macrocomandă" pentru a face referire la VBA cod. Acest lucru îi poate deruta pe utilizatorii Access, deoarece, în Access, termenul "macrocomandă" se referă la o colecție denumită de acțiuni de macrocomandă pe care le asamblați 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, astfel încât să puteți adăuga programare la controale și obiecte fără a învăța VBA cod. În articolele de ajutor Access, macrocomenzile Access se numesc macrocomenzi. VBA Codul se numește VBA cod, funcție sau procedură. VBA Codul este stocat în module 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 global pe care îl puteți utiliza în întreaga bază de date.

Obiectele, cum ar fi formularele și rapoartele și controalele, cum ar fi butoanele de comandă și casetele text, au 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 mai multe proprietăți de eveniment din mai multe obiecte. În majoritatea cazurilor însă, 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 VBAsau 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 sunteți obișnuit cu utilizarea VBA codului, puteți decide să îl utilizați VBA pentru majoritatea activităților de programare. Totuși, dacă intenționați să partajați baza de date cu alte persoane dintr-un server de fișiere, se recomandă să evitați utilizarea VBA acesteia, din motive de securitate.

Bazați-vă decizia de a utiliza macrocomenzi sau VBA cod pe două aspecte: securitatea și funcționalitatea pe care o doriți. Securitatea este importantă, deoarece VBA poate fi utilizată pentru a crea cod care vă compromite datele sau dăunează fișierelor de pe computer. Atunci când utilizați o bază de date creată de altă persoană, activați VBA codul doar dacă știți că baza de date provine dintr-o sursă de încredere. Când creați o bază de date pe care vor fi utilizate alte persoane, încercați să evitați includerea unor instrumente de programare care necesită ca utilizatorul să acorde în mod explicit încredere bazei de date. Tehnicile generale pentru a evita această cerință apar mai jos în această secțiune.

Pentru a securiza baza de date, încercați să utilizați macrocomenzi atunci când este posibil și utilizați VBA doar pentru operațiunile care nu pot fi efectuate utilizând acțiuni de macrocomenzi. De asemenea, încercați să utilizați doar acțiuni de macrocomenzi care nu necesită ca baza de date să fie de încredere înainte de a putea rula. Limitarea acțiunilor de macrocomenzi în acest mod îi ajută pe utilizatori 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 mai multe acțiuni de macrocomenzi care vă permit să creați macrocomenzi mai puternice decât erau permise 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 caracteristici erau disponibile numai în VBA. De asemenea, puteți încorpora 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 acesta dacă obiectul sau controlul 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 obiectele bazei de date, cum ar fi formulare și rapoarte, pe care le-ați creat, deoarece există puțină sintaxă de reținut. 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ă înaintea altor macrocomenzi sau VBA coduri, chiar dacă ați desemnat un formular de pornire în caseta de dialog Opțiuni Access și ați atașat o macrocomandă sau VBA un cod la acel formular sau OnLoad la acel OnOpen eveniment.

Pentru mai multe informații despre cum să creați macrocomenzi, consultați Înțelegerea macrocomenzilor.

Considerente despre VBA

Utilizați VBA în locul macrocomenzilor, dacă doriți să efectuați oricare dintre următoarele acțiuni:

  • Utilizați funcții predefinite sau creați unele proprii. Access include multe funcții predefinite, cum ar fi IPmt, care calculează plata unei dobânzi. Puteți utiliza aceste funcții pentru a efectua calcule fără a crea expresii complicate. Utilizând VBA, puteți, de asemenea, să creați 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, 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, precum și baza de date propriu-zisă.
  • Efectuați acțiuni la nivel de sistem. Puteți efectua acțiunea dintr-o RunApp 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, 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 Windows ().DLLs
  • 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 OnClick butonului de comandă. Într-un .mdb fișier sau .adp , expertul creează VBA cod 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 VBA codul 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 formular , faceți clic pe săgeata în jos pentru a afișa galeria Controale , apoi asigurați-vă că s-a selectat opțiunea Utilizare experți control .

  3. On the Form Design tab, in the Controls gallery, click Button.

  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ă. Acest pas este opțional și 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, atunci când setați ordinea de tabulare pentru controalele din formular, să fie mult mai ușor să deosebiți butoanele de comandă. De exemplu, dacă butonul de comandă închide formularul, îl puteți denumi cmdClose sau CommandClose.

  8. Faceți clic pe Terminare. Access plasează butonul de comandă în formular.

  9. Dacă doriți să vedeți ce a programat expertul 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 de proprietăți La Clic , faceți clic pe butonul Generare .

      Access pornește Generatorul de macrocomenzi și afișează macrocomanda creată de expert. Dacă doriți, puteți să editați macrocomanda. Pentru mai multe informații, consultați Î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.

  10. Pe fila Proiectare formular , î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 OnClick eveniment a butonului cu o macrocomandă care conține comenzile pe care doriți să le efectueze butonul de fiecare dată când este selectat.

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 VBA modul. 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 VBA cod.

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

Î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 VBA utilizând controale de la terți și vă puteți scrie propriile funcții și proceduri pentru anumite necesități.

O modalitate rapidă de a începe este VBA să creați mai întâi o macrocomandă Access și apoi să efectuați conversia acesteia în VBA cod. Instrucțiunile pentru a efectua acest lucru sunt incluse în Conversia macrocomenzilor la cod VBA. Această caracteristică creează un modul nou VBA 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 sau la VBA 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 orice macrocomenzi la care se face referire sau care sunt încorporate într-un formular sau un raport sau în oricare dintre controalele sale și adaugă VBA codul 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 formular , în grupul Instrumente , faceți clic pe Conversie macrocomenzi din formular la Visual Basic sau 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ă. Dacă macrocomenzile includ comentarii, selectați, de asemenea, dacă doriți ca aceste comentarii să fie incluse î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 noi VBA în locul macrocomenzilor.

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

    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 a foii de proprietăți, faceți clic în orice casetă de proprietăți care se afișează [Event Procedure], 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 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 macrocomandă , î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 VBA codul:

    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 modul.Converted Macro-<macro name> 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, VBA codul 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 într-un VBA 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 MyMacro, numele funcției va fi MyMacro().
  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, =MyMacro(). 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 VBA cod în baza de date. Acest articol descrie doar noțiunile de bază despre cum să începeți lucrul. Multe cărți de referință excelente și resurse online 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

Ordine de evenimente pentru obiectele bazei de date

Începutul paginii