Applies ToMicrosoft 365 rakendus Access Access 2024 Access 2021 Access 2019 Access 2016

Uue andmebaasi loomist alustatakse tavaliselt sellest, et luuakse mitu andmebaasiobjekti (nt tabelid, vormid ja aruanded). Ühel hetkel jõutakse selleni, et teatud protsesside automatiseerimiseks või andmebaasiobjektide sidumiseks on vaja kasutada programmeerimist. See artikkel aitab orienteeruda Access programmeerimisriistadele.

Selles artiklis

Mis on programmeerimine?

Access on programmeerimine andmebaasi funktsionaalsuse lisamise protsess, kasutades Access makrosid või Visual Basic for Applicationsi (VBA) koodi. Oletagem, et olete loonud vormi ja aruande ning soovite lisada vormile käsunuppu, mis avab klõpsamisel aruande. Sel juhul on programmeerimine makro või VBA-protseduuri loomine ning seejärel käsunupu sündmuseatribuudi OnClick määramine nõnda, et nupu klõpsamisel käivitaks see makro või VBA-protseduuri. Lihtsate toimingute (nt aruande avamise) jaoks saate kasutada käsunupuviisardit, kuid te võite viisardi ka välja lülitada ja programmeerimistöö ise ära teha.

Märkus.: Paljude Microsoft Office'i rakenduste puhul kasutatakse terminit „makro“ VBA-koodile viitamiseks. See võib Access kasutajatele segadust tekitada, kuna Access viitab termin "makro" nimega makrotoimingute kogumile, mille saate makrokoosturi abil kokku panna. Access makrotoimingud tähistavad ainult VBA-s saadaolevate käskude alamhulka. Makrokoostur pakub Visual Basic Editorist struktureeritumat kasutajaliidest, mis lubab programmmeerida juhtelemente ja objekte ilma VBA-koodi õppimata. Pidage meeles, et Access spikriartiklites viidatakse Access makrodele kui makrodele. Seevastu VBA-koodile viidatakse kui VBA-le, koodile, funktsioonile või protseduurile. VBA-koodi talletatakse klassimoodulites (eraldi vormide või aruannete osad, mis sisaldavad üldjuhul üksnes nende objektide koodi) ja moodulites (pole kindlate objektidega seotud ning tavaliselt sisaldavad globaalset koodi, mida saab kasutada kogu andmebaasi ulatuses).

Objektidel (nt vormid ja aruanded) ja juhtelementidel (nt käsunupud ja tekstiväljad) on mitmesugused sündmuseatribuudid, millega saab makrosid või protseduure siduda. Iga sündmuseatribuut on seotud kindla sündmusega, näiteks hiire klõpsamisega, vormi avamisega või tekstiväljal olevate andmete muutmisega. Sündmusi võivad käivitada ka tegurid väljaspool Access, näiteks süsteemisündmused või muude sündmustega seotud makrod või protseduurid. Suure hulga makrode või protseduuride lisamine mitmele sündmuseatribuudile võib andmebaasi keerukaks muuta, kuid tavaliselt saab soovitud tulemusi saavutada väga vähese programmeerimisega.

Lehe algusse

Kas kasutada makrosid või VBA-koodi?

Otsus kasutada kas makrosid, VBA-d või mõlemat, sõltub peamiselt sellest, kuidas te soovite andmebaasi juurutada või levitada. Näiteks kui andmebaasi talletatakse teie arvutis ja teie olete selle ainus kasutaja ning olete VBA koodi kasutamisega tuttav, võite otsustada enamiku programmeerimisülesannete jaoks kasutada VBA koodi. Kuid kui kavatsete oma andmebaasi teiste jaoks ühiskasutusse andmiseks selle serverisse paigutada, võite soovida turbekaalutlustel loobuda VBA kasutamisest.

Kui plaanite avaldada andmebaasi Accessi veebirakendusena, peate programmeerimisel kasutama VBA asemel makrosid, sest VBA ei ühildu veebis avaldamise funktsiooniga. Turvalisus võib osutuda probleemiks, sest VBA abil on võimalik luua kood, mis ohustab andmete turvalisust või kahjustab arvutis olevaid faile. Kui kasutate kellegi teise loodud andmebaasi, peaksite VBA-koodi lubama ainult juhul, kui andmebaas pärineb usaldusväärsest allikast. Luues andmebaasi, mida hakkavad kasutama teised, peaksite püüdma vältida programmeerimisvahendeid, mis nõuavad kasutajailt andmebaasi usaldusväärsuse kinnitamist. Levinumad moodused selleks leiate selle jaotise järgmistest osadest.

Andmebaasi turvalisuse tagamiseks peaksite võimaluse korral kasutama makrosid ja kasutama VBA-koodi ainult nende toimingute jaoks, mida pole makrotoimingutega võimalik teostada. Veelgi enam, peaksite püüdma kasutada ainult neid makrotoiminguid, mis ei nõua käivitamiseks andmebaasi usaldusväärseks tunnistamist. Sellisel moel makrode kasutamise piiramine annab kasutajaile kindlustunde, et andmebaas ei sisalda nende andmeid ega muid arvutis olevaid faile ohustavaid programme.

Kaalutlused makrode kasutamisel

Access sisaldab palju uusi makrotoiminguid, mis võimaldavad teil koostada võimsamaid makrosid kui Access varasemates versioonides. Näiteks saate nüüd makrotoimingute abil luua ja kasutada globaalseid ajutisi muutujaid ning nüüd on võimalik uute tõrketöötluseks mõeldud makrotoimingute abil tõrkeid palju paindlikumalt töödelda. Access varasemates versioonides on seda tüüpi funktsioonid saadaval ainult VBA abil. Lisaks sellele saate makrot manustada otse objekti või juhtelemendi sündmuseatribuudile. Manustatud makro saab objekti või juhtelemendi osaks ja jääb sellega seotuks ka siis, kui objekti või juhtelementi teisaldada või kopeerida.

Makrod pakuvad lihtsat moodust mitmete programmeerimistoimingute teostamiseks, nagu näiteks vormide avamine ja sulgemine ning aruannete käivitamine. Minimaalne meeldejääv süntaks teeb loodud andmebaasiobjektide (vormid, aruanded jne) sidumise kiireks ja lihtsaks. Iga toimingu argumendid kuvatakse makrokoosturis.

Lisaks makrode pakutavale suurenenud turvalisusele ja lihtsusele peate makrosid kasutama ka siis, kui soovite teha järgmisi toiminguid:

  • omistada klahvile toimingu või toimingukomplekti. See eeldab AutoKeys-nimelise makrorühma loomist;

  • sooritada andmebaasi esmasel avamisel toiming või toimingujada. See eeldab AutoExec-nimelise makro loomist.

    Märkus.:  Makro AutoExec käivitub enne muid makrosid või VBA-koodi, sh enne dialoogiboksis Accessi suvandid määratletud käivitusvormi sündmustega OnOpen või OnLoad seotud makrosid või VBA-koodi.

Lisateavet makrode koostamise kohta leiate teemast Makrod.

Kaalutlused VBA kasutamisel

Peaksite makrode asemel kasutama VBA-koodi, kui soovite teha mõnda järgmistest.

  • Saate kasutada valmisfunktsioone või luua ise funktsioone,    Access sisaldavad paljusid sisseehitatud funktsioone (nt funktsioon IPmt ), mis arvutab intressimakse. Te saate vältida keerukate avaldiste loomist ja kasutada arvutuste tegemiseks neid sisseehitatud funktsioone. VBA-koodi abil saate luua ka oma funktsioone, mis teostavad arvutusi, mida pole võimalik esitada avaldistena või mis asendavad keerukaid avaldisi. Lisaks saate avaldistes loodud funktsioonide abil rakendada tavatoiminguid mitmele objektile.

  • Objektide loomine ja muutmine    – enamasti on objekti kõige hõlpsam luua ja muuta selle objekti kujundusvaates. Võimalik, et soovite mõnes olukorras muuta objekti kirjeldust koodi abil. VBA abil on võimalik töödelda lisaks andmebaasile endale ka kõiki andmebaasi objekte.

  • Süsteemitaseme toimingute sooritamine    Toimingu Käivita_rakendus saate makros sooritada mõne muu programmi (nt Microsoft Excel) käivitamiseks Access kaudu, kuid makrot ei saa kasutada paljuks muuks toiminguks väljaspool Access. VBA abil saate kontrollida, kas fail on arvutis olemas, kasutada automatiseerimist või dünaamilist andmevahetust (DDE), et suhelda muude Microsoft Windowsi-põhiste programmidega (nt Excel) ja kõnefunktsioonidega Windowsi dünaamiliselt lingitavates teekides (DLL-id).

  • Kirjete ükshaaval manipuleerimine    VBA abil saate läbida kirjekomplekti, ühe kirje korraga ja sooritada iga kirjega toimingu. Seevastu makrod töötavad korraga tervete kirjekomplektidega.

Lehe algusse

Käsunupuviisardi abil levinumate programmeerimistoimingute tegemine

Kui lisate vormile käsunupu, saab käsunupuviisard aidata teil programmeerimisega algust teha. Viisardi abil saate luua kindlat toimingut teostava käsunupu. Access-failis (.accdb) loob viisard makro, mis manustatakse käsunupu atribuuti OnClick . MDB- või ADP-failides loob viisard VBA koodi, sest nende failivormingute puhul pole manustatud makrod saadaval. Mõlemal juhul saate seejärel makrot või VBA koodi oma äranägemise järgi täiustada.

  1. Paremklõpsake navigeerimispaanil vormi, millele soovite käsunuppu lisada, ja klõpsake seejärel nuppu Kujundusvaade.

  2. Klõpsake menüü Vormi kujundus galerii Juhtelemendid kuvamiseks allanoolt ja veenduge, et oleks valitud suvand Kasuta juhtelemendiviisardeid .

  3. Klõpsake menüü Vormikujundus galeriis Juhtelemendid nuppu Nupp.

  4. Klõpsake vormi kujundusruudustikus kohta, kus soovite käsunupu kuvada.

    Käivitatakse käsunupuviisard.

  5. Klõpsake viisardi esimesel lehel loendi Kategooriad iga kategooriat, et vaadata, milliseid toiminguid viisard käsunupule külge programmeerida saab. Valige loendis Toimingud soovitud toiming ja klõpsake nuppu Edasi.

  6. Klõpsake valikut Tekst või Pilt sõltuvalt sellest, kas soovite nupul kuvada teksti või pildi.

    • Kui soovite kuvada teksti, saate teksti redigeerida valiku Tekst kõrval oleval tekstiväljal.

    • Kui soovite kuvada pildi, soovitab viisard loendis mõnda pilti. Kui soovite valida mõne muu pildi, märkige kõigi Access pakutavate käsunupupiltide loendi kuvamiseks ruut Kuva kõik pildid või klõpsake mujale salvestatud pildi valimiseks nuppu Sirvi .

      Klõpsake nuppu Edasi.

  7. Pange käsunupule tähendusega nimi. See on valikuline ja seda nime käsunupul ei kuvata. Siiski on hea kasutada mõistlikku nime, et hiljem (nt vormi vahekaartide järjekorra määramisel) oleks lihtne viidata just sellele nupule teiste seast. Näiteks, kui käsunupp suleb vormi, võiks nupu nimi olla käskSulge või KäskSulge.

  8. Klõpsake nuppu Valmis.

    Access paigutab käsunupu vormile.

  9. Kui soovite vaadata, mille viisard teie jaoks valmis „programmeeris“, järgige järgmisi valikulisi juhiseid.

    1. Kui atribuudileht pole veel avatud, vajutage selle kuvamiseks klahvi F4.

    2. Klõpsake atribuudilehel vahekaarti Sündmus.

    3. Klõpsake atribuudiväljal Klõpsamisel nuppu Koosta Nupu pilt.

      Access käivitab makrokoosturi ja kuvab viisardi loodud makro. Soovi korral saate makrot redigeerida (lisateavet makrode redigeerimise kohta leiate jaotisest Makrod). Kui olete lõpetanud, klõpsake makrokoosturi sulgemiseks menüü Makrokujundus jaotises Sule nuppu Sule . Kui Access küsib teilt muudatuste salvestamise ja atribuudi värskendamise kohta, klõpsake muudatuste salvestamiseks nuppu Jah või muudatuste hülgamiseks nuppu Ei .

  10. Klõpsake menüü Vormikujundus jaotises Vaated nuppu Vaade ja seejärel käsku Vormivaade. Klõpsake uut käsunuppu veendumaks, et see töötab ootuspäraselt.

Lehe algusse

Makrod

Makro on tööriist toimingute automatiseerimiseks ja funktsionaalsuse lisamiseks vormidele, aruannetele ja juhtelementidele. Näiteks vormile nupu lisamisel seostatakse nupu sündmus Klõpsamisel makroga ja makro sisaldab käske, mille täitmist te nupu igal klõpsamisel soovite.

Kasulik on mõelda, Access makrod on lihtsustatud programmeerimiskeel, kus koodi saate luua sooritatavate toimingute loendi koostamisega. Makro koostamisel tuleb ripploendist toimingud valida ja iga toimingu kohta vajalik teave sisestada. Makrod võimaldavad lisada vormidele, aruannetele ja juhtelementidele funktsionaalsust ilma VBA-koodita. Makrod sisaldavad VBA-käsustiku alamhulka ning makro koostamine tundub paljudele lihtsam kui VBA-koodi kirjutamine.

Makro luuakse järgmisel pildil näidatud makrokoosturi abil.

Access 2010 makrokoostur

Makrokoosturi kuvamiseks tehke järgmist.

  • Klõpsake menüü Loo jaotises Makrod ja kood nuppu Makro.

Lehe algusse

VBA-kood

Sarnaselt makrodega võimaldab VBA Access rakendusse lisada automatiseerimise ja muid funktsioone. VBA-d saate laiendada muude tootjate juhtelementide abil ja samuti saate oma vajaduste tarbeks kirjutada oma funktsioone ja protseduure.

Kiire viis VBA programmeerimisega alustamiseks on esmalt koostada Access makro ja seejärel teisendada see VBA-koodiks. Juhised selleks leiate jaotisest Makrode teisendamine VBA-koodiks. Selle toiminguga loote VBA mooduli, mis teostab makrole vastavaid toiminguid. See toiming avab ühtlasi ka Visual Basic Editori, et saaksite hakata protseduuri muutma. Visual Basic Editoris töötades saate klõpsata märksõnu ja vajutada klahvi F1, et käivitada Access arendaja spikker ja lugeda iga märksõna kohta lisateavet. Seejärel saate uurida Access arendaja spikrit ja leida uusi käske, mis aitavad teil soovitud programmeerimistoiminguid teha.

Lehe algusse

Makrode teisendamine VBA-koodiks

Makrode automaatseks VBA-mooduliks või klassimooduliks teisendamiseks saate kasutada Access. Saate teisendada vormi või aruande juurde kuuluvaid makrosid, olenemata sellest, kas need on liidetud eraldi objektidena või manustatud. Teisendada saab ka globaalseid makrosid, mis pole seotud ühegi kindla vormi ega aruandega.

Vormile või aruandele manustatud makrode teisendamine

See protsess teisendab kõik makrod, mis on vormile või aruandele manustatud või millele on vormilt või aruandelt viidatud, VBA koodiks, mis lisatakse vormi või aruande klassimoodulile. Klassimoodul saab vormi või aruande osaks ja liigub vormi või aruandega selle teisaldamisel või kopeerimisel kaasa.

  1. Paremklõpsake navigeerimispaanil vormi või aruannet ja seejärel klõpsake käsku Kujundusvaade.

  2. Klõpsake menüü Vormi kujundus jaotises Tööriistad nuppu Teisenda vormi makrod Visual Basicusse või Teisenda aruande makrod Visual Basicusse.

  3. Valige dialoogiboksis Vormimakrode teisendamine või Aruandemakrode teisendamine , kas soovite, et Access lisaks genereeritavatele funktsioonidele tõrketöötluskoodi. Kui teie makrodes on kommentaare, määrake ka see, kas soovite need kaasata funktsiooni kommentaaridesse. Jätkamiseks klõpsake nuppu Teisenda.

    Kui vormi või aruande jaoks klassimoodulit pole, Access selle luua ja lisab iga vormi või aruandega seostatud makro jaoks moodulile protseduuri. Access muudab ka vormi või aruande sündmuseatribuute nii, et need käivitaksid makrode asemel uued VBA protseduurid.

  4. VBA-koodi kuvamiseks ja redigeerimiseks tehke järgmist.

    1. Kui vorm või aruanne on veel kujundusvaates avatud, aga atribuudileht pole kuvatud, vajutage selle kuvamiseks klahvi F4.

    2. Klõpsake atribuudilehe vahekaardil Sündmus mis tahes atribuudivälja, kus on kuvatud [Sündmuseprotseduur] ja seejärel klõpsake Nupu piltkoostamisnuppu. Kindla juhtelemendi sündmuseatribuutide nägemiseks klõpsake seda selle valimiseks. Kogu vormi või aruande sündmuseatribuutide kuvamiseks valige atribuudilehe ülaservas olevas loendis valik Vorm või Aruanne.

      Access avab Visual Basic Editori ja kuvab sündmuseprotseduuri klassimoodulis. Sama klassimooduli muude protseduuride kuvamiseks liikuge kerides üles või alla.

Globaalsete makrode teisendamine

  1. Paremklõpsake navigeerimispaanil makrot, mille soovite teisendada, ja seejärel klõpsake käsku Kujundusvaade.

  2. Klõpsake menüü Makrokujundus jaotises Tööriistad nuppu Teisenda makrod Visual Basicusse.

  3. Valige dialoogiboksis Makro teisendamine soovitud sätted ja klõpsake nuppu Teisenda.

    Access teisendab makro ja avab Visual Basic Editori.

  4. VBA-koodi kuvamiseks ja redigeerimiseks tehke järgmist.

    1. Kui Visual Basic Editoris Project Exploreri paani näha pole, klõpsake menüü Vaade nuppu Project Explorer.

    2. Laiendage selle andmebaasi all olevat puud, millega te parajasti töötate.

    3. Topeltklõpsake jaotises Moodulid mooduli Teisendatud makro- makro nime.

      Visual Basic Editor avab mooduli.

VBA-funktsiooni manustamine sündmuse atribuudile

Globaalse makro teisendamisel VBA-koodi paigutatakse kood standardmoodulisse. Erinevalt klassimoodulist pole standardmoodul ühegi vormi ega aruande osa. Otstarbekas on siduda funktsioon vormi, aruande või juhtelemendi sündmuse atribuudiga, nii et kood käivituks täpselt soovitud ajal ja kohas. Selleks võite kopeerida VBA-koodi klassimoodulisse ja seejärel siduda selle sündmuse atribuudiga või luua järgmise protseduuri abil kutse sündmuse atribuudist standardmoodulisse.

  1. Jätke Visual Basic Editoris meelde funktsiooni nimi. Näiteks kui teisendasite makro nimega MinuMakro, on funktsiooni nimeks MinuMakro().

  2. Sulgege Visual Basic Editor.

  3. Paremklõpsake navigeerimispaanil vormi või aruannet, mille funktsiooni soovite siduda, ja klõpsake seejärel nuppu Kujundusvaade.

  4. Klõpsake juhtelementi või jaotist, mille soovite funktsiooniga siduda.

  5. Kui atribuudileht pole veel avatud, vajutage selle kuvamiseks klahvi F4.

  6. Klõpsake atribuudilehe vahekaardil Sündmus selle sündmuseatribuudi välja, millega soovite funktsiooni siduda.

  7. Tippige atribuudiväljale võrdusmärk (=) ja selle järele funktsiooni nimi (nt =MinuMakro(). Lisage kindlasti ka sulud.

  8. Vormi või aruande salvestamiseks klõpsake kiirpääsuribal nuppu Salvesta.

  9. Topeltklõpsake navigeerimispaanil vormi või aruannet testimaks, kas kood käivitub õigesti.

Nüüd teate põhilisi samme andmebaasile VBA-koodi lisamiseks. Selles artiklis kirjeldatakse vaid alustamiseks vajalikke põhijuhiseid, programmeerimisoskuste lihvimiseks on saadaval palju suurepäraseid käsiraamatuid ja veebiressursse.

Lisateave

Kasutajaliidese makro loomine

Accessi makro käivitamine kiirklahvi abil

Käivitussündmuste automatiseerimine makro abil

Andmebaasi avamisel käivituva makro loomine

Andmebaasiobjektide sündmuste järjestus

Lehe algusse

Kas vajate veel abi?

Kas soovite rohkem valikuvariante?

Siin saate tutvuda tellimusega kaasnevate eelistega, sirvida koolituskursusi, õppida seadet kaitsma ja teha veel palju muud.

Kogukonnad aitavad teil küsimusi esitada ja neile vastuseid saada, anda tagasisidet ja saada nõu rikkalike teadmistega asjatundjatelt.