Sissejuhatus Accessi programmeerimisse

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 Accessi programmeerimistööriistades.

Selles artiklis

Mis on programmeerimine?

Kas kasutada makrosid või VBA-koodi?

Käsunupuviisardi abil levinumate programmeerimistoimingute tegemine

Makrod

VBA-kood

Makrode teisendamine VBA-koodiks

Mis on programmeerimine?

Accessis on programmeerimine Accessi makrode või VBA (Visual Basic for Applications) koodi abil andmebaasile funktsionaalsuse lisamine. 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 Accessi kasutajate seas tekitada segadust, sest Accessis viitab termin „makro“ makrotoimingute nimega kogumile, mille saab koostada makrokoosturi abil. Accessi makrotoimingud hõlmavad üksnes osa VBA-s saadaolevaist käskudest. Makrokoostur pakub Visual Basic Editorist struktureeritumat kasutajaliidest, mis lubab programmmeerida juhtelemente ja objekte ilma VBA-koodi õppimata. Meeles tuleks pidada, et Accessi spikriartiklites viidatakse Accessi makrodele sõnaga „makro“. 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 saavad vallandada ka Accessi välised tegurid nagu 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 2010 sisaldab paljusid uusi makrotoiminguid, mis võimaldavad teil koostada palju võimsamaid makrosid, kui seda võimaldasid Accessi varasemad versioonid. 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. Varasemates Accessi versioonides oli see funktsioon kasutatav ainult VBA-koodi 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.

  • Sisseehitatud funktsioonide kasutamine enda funktsioonide loomiseks.    – Accessis on palju funktsioone, nagu näiteks intressimakse arvutamiseks kasutatav IPmt. 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üsteemi tasemel toimingute sooritamine    – makros saate kasutada toimingut RunApp mõne muu rakenduse (nt Microsoft Excel) käivitamiseks Accessist, aga te ei saa makrode abil väljaspool Accessi midagi muud teha. VBA abil on võimalik kontrollida faili olemasolu arvutis, kasutada automatiseerimist või dünaamilist andmevahetust (DDE) muude Microsoft Windowsi rakendustega (nt Excel) suhtlemiseks, samuti saate kutsuda Windowsi lingitavate teekide (DLL) funktsioone.

  • Kirjete muutmine ükshaaval    – VBA abil on võimalik töödelda kirjeid etapikaupa, üks kirje korraga, ning rakendada toiming igale kirjele. Makrod võimaldavad töötada korraga ainult kogu 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. Viisard loob Access 2010 (.accdb) failis käsunupu atribuudi OnClick juurde manustatud makro. 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 galerii Juhtelemendid avamiseks menüüs Kujundus allanoolt ja veenduge, et säte Kasuta juhtelemendiviisardeid oleks valitud.

  3. Klõpsake menüü Kujundus 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 Accessis pakutavate kõigi käsunupupiltide loendi kuvamiseks ruut Kuva kõik pildid või klõpsake nuppu Sirvi, et valida pilt muust asukohast.

      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.

    Käsunupp paigutatakse 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 avab makrokoosturi ning 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üü Kujundus jaotises Sule nuppu Sule. Kui Access palub teil muudatused salvestada ja atribuuti värskendada, klõpsake muudatuste salvestamiseks nuppu Jah või muudatuste hülgamiseks nuppu Ei.

  10. Klõpsake menüü Kujundus jaotise Vaated nuppu Vaade ning 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.

Accessi makrosid võib võrrelda lihtsustatud programmeerimiskeelega, mille kood koosneb sooritatavate toimingute loendist. 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

Märkus. : Pange tähele, et rakenduse Access 2007 makrokoostur oli ülaltoodud pildil kujutatud makrokoosturist erinev. Rakenduse Access 2007 makrokoostur oli ridade ja veergude sari, kus oli loetletud makro erinevad toimingud.

Makrokoosturi kuvamiseks tehke järgmist.

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

Lehe algusse

VBA-kood

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

Kiire moodus VBA programmeerimisega alustada on luua esmalt Accessi makro ja see VBA-koodiks teisendada. 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 võtmesõnu klõpsates ja klahvi F1 vajutades käivitada Accessi arendaja spikri ja lugeda iga võtmesõna kohta täpsemat teavet. Seejärel saate Accessi arendaja spikrit edasi uurida ja avastada soovitud programmeerimisülesannete lahendamiseks sobivaid uusi käske.

Lehe algusse

Makrode teisendamine VBA-koodiks

Accessis saab makrod automaatselt VBA-mooduliteks või klassimooduliteks teisendada. 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.

Märkus. : Saate lisada veebiandmebaasi VBA (Visual Basic for Applications) koodi, kuid andmebaasi käitamisel veebibrauseris ei saa te seda koodi käivitada. Kui teie veebiandmebaas sisaldab VBA-koodi, peate enne koodi käivitamist avama veebiandmebaasi Accessi abil. Veebiandmebaasis programmeerimistoimingute tegemiseks kasutage pigem Accessi makrosid.

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üü Kujundus jaotises Tööriistad nuppu Teisenda vormi makrod Visual Basicusse või Teisenda aruande makrod Visual Basicusse.

  3. Valige dialoogiboksis Teisenda vormi makrod või Teisenda aruande makrod, kas soovite, et Access lisaks genereeritavale funktsioonile ka tõrketöötluse koodi. Kui teie makrodes on kommentaare, määrake ka see, kas soovite need kaasata funktsiooni kommentaaridesse. Jätkamiseks klõpsake nuppu Teisenda.

    Kui sellel vormil või aruandel klassimooduleid pole, loob Access ühe ja lisab sinna iga vormi või aruandega seotud makro jaoks ühe protseduuri. Access muudab ka vormi või aruande sündmuseatribuuti selliselt, et see käivitaks 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 vahekaardi Sündmus mis tahes atribuudivälja, milles on nähtaval väärtus [Sündmuse protseduur] ning seejärel järgmist nuppu: Nupu pilt . 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ündmuse protseduuri selle 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üü Kujundus 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.

Lehe algusse

Täiendage oma oskusi
Tutvuge koolitusmaterjalidega
Kasutage uusi funktsioone enne teisi
Liituge Office Insideri programmiga

Kas sellest teabest oli abi?

Täname tagasiside eest!

Täname tagasiside eest! Tundub, et võiksime teid kokku viia ühega meie Office'i tugiagentidest, kes aitab teil probleemi lahendada.

×