Kun luot uuden tietokannan, aloitat yleensä luomalla useita tietokantaobjekteja, kuten taulukoita, lomakkeita ja raportteja. Olet ennen pitkää tilanteessa, jossa sinun on automatisoitava tiettyjä prosesseja ja liitettävä tietokantaobjektit yhteen käyttämällä ohjelmointia. Tämän artikkelin avulla voit käyttää Access ohjelmointityökaluja.

Tämän artikkelin sisältö

Mitä ohjelmointi on?

Access ohjelmointi on prosessi, jossa tietokantaan lisätään toimintoja käyttämällä Access makroja tai Visual Basic for Applications (VBA) -koodia. Oletetaan esimerkiksi, että olet luonut lomakkeen ja raportin, ja haluat lisätä lomakkeeseen komentopainikkeen, jonka napsauttaminen avaa raportin. Tässä tapauksessa ohjelmoinnilla tarkoitetaan prosessia, jossa luodaan makro tai VBA-toimintosarja ja määritetään sitten komentopainikkeen Napsautettaessa-tapahtumaominaisuus niin, että komentopainikkeen napsauttaminen suorittaa makron tai toimintosarjan. Yksinkertaiseen toimintoon, kuten raportin avaamiseen, voit käyttää Ohjattu komentopainikkeen luominen -toimintoa, joka tekee kaiken työn, tai voit poistaa ohjatun toiminnon käytöstä ja suorittaa ohjelmoinnin itse.

Huomautus: Monissa Microsoft Office -ohjelmissa ”makrolla” tarkoitetaan VBA-koodia. Tämä voi aiheuttaa sekaannusta Access käyttäjille, koska Access termi "makro" viittaa nimettyihin makrotoimintojen kokoelmaan, jonka voit koota makron muodostimen avulla. Access makrotoiminnot edustavat vain osajoukkoa VBA:ssa käytettävissä olevista komennoista. Makron muodostimessa on jäsennellympi käyttöliittymä kuin Visual Basic Editorissa, jotta voit ohjelmoida ohjausobjekteja ja objekteja opettelematta VBA-koodia. Muista, että Access ohjeartikkeleissa Access makroja kutsutaan makroiksi. VBA-koodista käytetään termiä VBA, koodi, funktio tai toimintosarja. VBA-koodia on luokkamoduuleissa (jotka ovat yksittäisten lomakkeiden tai raporttien osia ja sisältävät yleensä vain näiden objektien koodia) ja moduuleissa (jotka eivät ole sidoksissa tiettyihin objekteihin ja sisältävät yleensä ”yleistä” koodia, jota voi käyttää koko tietokannassa).

Objekteilla (kuten lomakkeilla ja raporteilla) ja ohjausobjekteilla (kuten komentopainikkeilla ja tekstiruuduilla) on erilaisia tapahtumaominaisuuksia, joihin voit liittää makroja tai toimintosarjoja. Jokainen tapahtumaominaisuus liittyy tiettyyn tapahtumaan, kuten hiiren napsauttamisen, lomakkeen avaamiseen tai tekstiruudun tietojen muokkaamiseen. Tapahtumat voivat johtua myös Access ulkopuolisista tekijöistä, kuten järjestelmätapahtumista, tai muihin tapahtumiin liitetyistä makroista tai toiminnoista. Tietokannasta voi tulla monimutkainen, jos lisäät useita makroja tai toimintosarjoja monien objektien useisiin tapahtumaominaisuuksiin, mutta saat yleensä haluamasi tulokset vähällä ohjelmoinnilla.

Sivun alkuun

Kannattaako käyttää makroja vai VBA-koodia?

Päätös käyttää makroja, VBA-koodia tai molempia riippuu pääosin siitä, miten tietokanta otetaan käyttöön tai jaetaan. Jos tietokanta on esimerkiksi tallennettu tietokoneeseesi ja olet sen ainoa käyttäjä, ja jos olet tottunut käyttämään VBA-koodia, saatat käyttää VBA-koodia useimpiin ohjelmointitehtäviin. Jos kuitenkin aiot jakaa tietokannan muiden kanssa tallentamalla sen tiedostopalvelimeen, kannattaa ehkä välttää VBA-koodin käyttämistä tietoturvasyistä.

Kun teet päätöstä käyttää makroja tai VBA-koodia, harkitse kahta asiaa: tarvitsemaasi suojausta ja toiminnallisuutta. Suojaus on tärkeää, koska VBA:n avulla voi luoda koodia, joka voi vaarantaa tietojesi suojauksen tai vahingoittaa tietokoneessasi olevia tiedostoja. Kun käytät jonkun muun luomaa tietokantaa, sinun kannattaa ottaa VBA-koodi käyttöön vain siinä tapauksessa, että tiedät tietokannan olevan peräisin luotettavasta lähteestä. Kun luot tietokannan, joka tulee muiden käyttöön, pyri välttämään ohjelmointityökaluja, jotka vaativat käyttäjää määrittämään tietokannan erikseen luotetuksi. Jäljempänä tässä osassa on kuvattu yleisiä keinoja siihen, miten käyttäjien ei tarvitse määrittää tietokantaa luotetuksi.

Jotta voit varmistaa tietokannan suojauksen, pyri käyttämään makroja aina kun mahdollista, ja käytä VBA-ohjelmointia vain toiminnoissa, joita ei voi suorittaa makrotoiminnoilla. Lisäksi kannattaa pyrkiä käyttämään vain makrotoimintoja, joiden suorittaminen ei edellytä tietokannan määrittämistä luotetuksi. Kun rajoitat makrotoimintojen käyttöä tällä tavoin, käyttäjät voivat luottaa siihen, että tietokannassa ei ole käytetty ohjelmointia, joka voisi vahingoittaa heidän tietokoneissaan olevia tietoja tai tiedostoja.

Makrojen osalta huomioitavat asiat

Access sisältää monia uusia makrotoimintoja, joiden avulla voit luoda tehokkaampia makroja kuin Access aiemmissa versioissa. Voit esimerkiksi luoda ja käyttää yleisiä väliaikaismuuttujia makrotoimintojen avulla, ja voit käsitellä virheet entistä hallitummin käyttämällä uusia virheenkäsittelyn makrotoimintoja. Access aiemmissa versioissa tällaiset ominaisuudet ovat käytettävissä vain VBA:n avulla. Lisäksi voit upottaa makron suoraan objektin tai ohjausobjektin tapahtumaominaisuuteen. Upotetusta makrosta tulee osa objektia tai ohjausobjektia, ja se pysyy objektin tai ohjausobjektin mukana, jos tämä siirretään tai kopioidaan.

Makrojen avulla on helppo käsitellä monia ohjelmointitehtäviä, kuten lomakkeiden avaaminen ja sulkeminen ja raporttien suorittaminen. Voit yhdistää luomasi tietokantaobjektit (kuten lomakkeet ja raportit) helposti ja nopeasti, koska sinun ei tarvitse juurikaan muistaa ulkoa syntaksia. Kunkin toiminnon argumentit näytetään Makron muodostimessa.

Sen lisäksi, että makrot parantavat suojausta ja helpottavat käyttöä, niitä on käytettävä seuraavien tehtävien suorittamiseen:

  • Toiminnon tai toimintosarjan määrittäminen näppäimelle. Tämä edellyttää AutoKeys-makroryhmän luomista.

  • Toiminnon tai toimintosarjan suorittaminen, kun tietokanta avataan. Tämä edellyttää AutoExec-makron luomista.

    Huomautus:  AutoExec-makro suoritetaan ennen muita makroja tai VBA-koodia, vaikka olisit määrittänyt oletuslomakkeen Accessin asetukset -välilehdessä ja liittänyt makron tai VBA-koodin kyseisen lomakkeen Avattaessa- tai MuistiinLadattaessa-tapahtumaan.

Katso lisätietoja makrojen luomisesta osasta Tietoja makroista.

VBA-koodin osalta huomioitavat asiat

Käytä VBA-ohjelmointia makrojen sijaan, jos haluat tehdä jonkin seuraavista:

  • Käytä valmiita funktioita tai luo omia funktioita    ,Access sisältää useita valmiita funktioita, kuten IPmt-funktion , joka laskee korkomaksun. Näiden valmiiden funktioiden avulla voit suorittaa laskutoimituksia luomatta monimutkaisia lausekkeita. VBA-koodin avulla voit myös luoda omia funktioita joko sellaisten laskutoimitusten suorittamiseen, joihin lausekkeet eivät pysty, tai korvaamaan monimutkaisia lausekkeita. Voit myös käyttää luomiasi funktioita lausekkeissa, jotta voit käyttää yleistä toimintoa useampaan kuin yhteen objektiin.

  • Luoda tai käsitellä objekteja    Objektin luominen ja muokkaaminen on useimmiten helpointa objektin rakennenäkymässä. Joissakin tilanteissa voi olla tarpeen käsitellä objektin määritystä sen koodissa. VBA-koodin avulla voit käsitellä tietokannan kaikkia objekteja itse tietokannan lisäksi.

  • Suorittaa järjestelmätason toimintoja    Voit suorittaa makrossa SuoritaApp-toiminnon toisen ohjelman (kuten Microsoft Excelin) suorittamiseksi Access sisällä, mutta makron avulla ei voi tehdä paljon muuta kuin Access. VBA-koodin avulla voit tarkistaa, onko tiedosto olemassa tietokoneessa, viestiä muiden Microsoft Windows -ohjelmien (kuten Excelin) kanssa automaation tai Dynamic Data Exchangen (DDE) avulla ja kutsua Windowsin DLL-kirjastoissa olevia funktioita.

  • Käsitellä tietueet yksi kerrallaan    VBA-koodin avulla voit käydä tietuejoukon läpi yksi tietue kerrallaan ja suorittaa toiminnon kullekin tietueelle. Makrot sen sijaan käsittelevät koko tietuejoukon yhdellä kertaa.

Sivun alkuun

Ohjattu komentopainikkeen luominen -toiminnon käyttäminen yleisten ohjelmointitehtävien suorittamiseen

Jos haluat lisätä lomakkeeseen komentopainikkeen, Ohjattu komentopainikkeen luominen -toiminnon avulla pääset alkuun ohjelmoinnissa. Ohjatun toiminnon avulla voit luoda komentopainikkeen, joka suorittaa tietyn tehtävän. Ohjattu toiminto luo Access (.accdb) -tiedostoon makron, joka on upotettu komentopainikkeen Napsautetaan-ominaisuuteen. Ohjattu toiminto luo .mdb- tai .adp-tiedostoon VBA-koodia, koska upotetut makrot eivät ole käytettävissä näissä tiedostomuodoissa. Kummassakin tapauksessa voit sen jälkeen muokata tai parantaa makroa tai VBA-koodia tarpeidesi mukaan.

  1. Napsauta siirtymisruudussa hiiren kakkospainikkeella lomaketta, johon haluat lisätä komentopainikkeen, ja valitse sitten Rakennenäkymä.

  2. Tuo Ohjausobjektit-valikoima näkyviin napsauttamalla Lomakkeen rakennenäkymä -välilehdessä alanuolta ja varmista sitten, että Käytä ohjattua ohjausobjektin luomista on valittuna.

  3. Valitse Lomakkeen rakennenäkymä -välilehden Ohjausobjektit-valikoimastaPainike.

  4. Napsauta lomakkeen rakenneruudukossa kohtaa, johon haluat sijoittaa komentopainikkeen.

    Ohjattu komentopainikkeen luominen käynnistyy.

  5. Napsauta ohjatun toiminnon ensimmäisellä sivulla Luokat-luettelon kutakin luokkaa, jotta näet , mitä toimintoja ohjattu toiminto voi ohjelmoida painikkeen suorittamaan. Valitse haluamasi toiminto Toiminnot-luettelosta ja valitse sitten Seuraava.

  6. Napsauta joko Teksti- tai Kuva-vaihtoehtoa sen mukaan, haluatko komentopainikkeeseen näkyviin tekstiä vai kuvan.

    • Jos haluat siihen tekstiä, voit muokata tekstiä Teksti-vaihtoehdon vieressä olevassa tekstiruudussa.

    • Jos haluat siihen kuvan, ohjattu toiminto ehdottaa luettelossa olevaa kuvaa. Jos haluat valita toisen kuvan, valitse Näytä kaikki kuvat -valintaruutu, jos haluat näyttää luettelon kaikista Access tarjoamista komentopainikekuvista, tai valitse Selaa , jos haluat valita kuvan, joka on tallennettu muualle.

      Valitse Seuraava.

  7. Kirjoita komentopainikkeelle kuvaava nimi. Tämä on valinnainen vaihe, eikä tätä nimeä näytetä komentopainikkeessa. Komentopainikkeelle kannattaa kuitenkin antaa kuvaava nimi, koska jos sinun on viitattava komentopainikkeeseen myöhemmin (esimerkiksi jos määrität lomakkeen ohjausobjekteille sarkainjärjestyksen), komentopainikkeet on helpompi erottaa toisistaan. Jos komento sulkee lomakkeen, voit antaa nimeksi esimerkiksi komSulje tai KomentoSulje.

  8. Valitse Valmis.

    Access sijoittaa komentopainikkeen lomakkeeseen.

  9. Jos haluat nähdä, mitä ohjattu toiminto ”ohjelmoi” puolestasi, voit toimia seuraavasti:

    1. Jos ominaisuusikkuna ei ole vielä näytössä, tuo se näyttöön painamalla F4-näppäintä.

    2. Valitse ominaisuusikkunasta Tapahtuma-välilehti.

    3. Napsauta Napsautetaan-ominaisuusruudussaMuodosta-painiketta Painikkeen kuva.

      Access käynnistää makron muodostimen ja näyttää ohjatun toiminnon luoman makron. Voit halutessasi muokata makroa (katso lisätietoja makron muokkaamisesta osasta Tietoja makroista). Kun olet valmis, sulje Makron muodostin valitsemalla Makron rakennenäkymä -välilehden Sulje-ryhmästäSulje . Jos Access kehottaa tallentamaan muutokset ja päivittämään ominaisuuden, tallenna muutokset valitsemalla Kyllä tai Hylkää muutokset valitsemalla Ei .

  10. Valitse Lomakkeen rakennenäkymä -välilehden Näkymät-ryhmästäNäytä ja valitse sitten Lomakenäkymä. Napsauta uutta komentopainiketta sen varmistamiseksi, että se toimii haluamallasi tavalla.

Sivun alkuun

Tietoja makroista

Makro on työkalu, jonka avulla voit automatisoida tehtäviä ja lisätä toimintoja lomakkeisiin, raportteihin ja ohjausobjekteihin. Jos esimerkiksi lisäät komentopainikkeen lomakkeeseen, liität painikkeen Napsautettaessa-tapahtumaominaisuuden makroon, joka sisältää komennot, jotka haluat painikkeen suorittavan aina, kun sitä napsautetaan.

On hyödyllistä ajatella, että Access makrot yksinkertaistettuna ohjelmointikielenä, jolla luot koodin luomalla luettelon suoritettavista toiminnoista. Kun luot makron, voit valita kunkin toiminnon avattavasta luettelosta ja täyttää sitten kullekin toiminnolle vaaditut tiedot. Makrojen avulla voit lisätä toimintoja lomakkeisiin, raportteihin ja ohjausobjekteihin kirjoittamatta koodia VBA-moduulissa. Makrot sisältävät osan VBA-koodin komennoista, ja monien käyttäjien mielestä makron luominen on helpompaa kuin VBA-koodin kirjoittaminen.

Makron voi luoda Makron muodostimella, joka näkyy seuraavassa kuvassa.

Access 2010:n Makron muodostin:

Makron muodostimen avaaminen:

  • Valitse Luo-välilehden Makrot ja koodi -ryhmässä Makro.

Sivun alkuun

Tietoja VBA-koodista

Makrojen tavoin myös VBA:n avulla voit lisätä automaatiota ja muita toimintoja Access-sovellukseen. Voit laajentaa VBA-koodia käyttämällä kolmannen osapuolen ohjausobjekteja, ja voit kirjoittaa omia tarpeitasi vastaavia funktioita ja toimintosarjoja.

Nopea tapa aloittaa VBA-ohjelmointi on ensin luoda Access-makro ja muuntaa se sitten VBA-koodiksi. Ohjeet tämän tekemiseen ovat osassa Makrojen muuntaminen VBA-koodiksi. Tämä ominaisuus luo uuden VBA-moduulin, joka suorittaa makroa vastaavat toiminnot. Se myös avaa Visual Basic Editorin, jotta voit muokata toimintosarjaa. Kun käytät Visual Basic Editoria, voit napsauttaa avainsanoja ja painaa F1-näppäintä käynnistääksesi Access kehittäjän ohjeen ja saadaksesi lisätietoja kustakin avainsanasta. Sen jälkeen voit tutustua Access kehittäjän ohjeeseen ja etsiä uusia komentoja, joiden avulla voit suorittaa haluamasi ohjelmointitehtävät.

Sivun alkuun

Makrojen muuntaminen VBA-koodiksi

Access avulla voit muuntaa makrot automaattisesti VBA-moduuleiksi tai luokkamoduuleiksi. Voit muuntaa lomakkeeseen tai raporttiin liitettyjä makroja riippumatta siitä, ovatko ne erillisiä objekteja vai upotettuja makroja. Voit muuntaa myös yleisiä makroja, joita ei ole liitetty mihinkään tiettyyn lomakkeeseen tai raporttiin.

Lomakkeeseen tai raporttiin liitettyjen makrojen muuntaminen

Tämä prosessi muuntaa VBA-koodiksi kaikki makrot, joihin viitataan lomakkeessa tai raportissa (tai joka on upotettu lomakkeeseen tai raporttiin tai johon viitataan jossakin sen ohjausobjektissa) ja lisää VBA-koodin lomakkeen tai raportin luokkamoduuliin. Luokkamoduulista tulee osa lomaketta tai raporttia, ja se siirtyy lomakkeen tai raportin mukana, jos tämä siirretään tai kopioidaan.

  1. Napsauta lomaketta tai raporttia siirtymisruudussa hiiren kakkospainikkeella ja valitse sitten Rakennenäkymä.

  2. Valitse Lomakkeen rakennenäkymä -välilehden Työkalut-ryhmässä joko Muunna lomakkeen makrot Visual Basiciksi tai Muunna raportin makrot Visual Basiciksi.

  3. Valitse Muunna lomakemakrot - tai Muunna raporttimakrot -valintaikkunassa, haluatko Access lisätä virheenkäsittelykoodin luomiaan funktioihin. Jos makroissa on kommentteja, valitse, haluatko sisällyttää ne funktioihin kommentteina. Jatka valitsemalla Muunna.

    Jos lomakkeelle tai raportille ei ole luokkamoduulia, Access luo sellaisen ja lisää moduuliin toimintosarjan jokaiselle lomakkeeseen tai raporttiin liitetylle makrolle. Access myös muuttaa lomakkeen tai raportin tapahtumaominaisuuksia niin, että ne suorittavat uudet VBA-toimintosotteet makrojen sijaan.

  4. VBA-koodin tarkasteleminen ja muokkaaminen:

    1. Kun lomake tai raportti on edelleen avoinna rakennenäkymässä, jos ominaisuusikkuna ei ole näkyvissä, tuo se näkyviin painamalla F4-näppäintä.

    2. Napsauta ominaisuusikkunan Tapahtuma-välilehdessä mitä tahansa ominaisuusruutua, jossa näkyy [Tapahtumatoimintosarja], ja napsauta sitten koontiversiopainiketta Painikkeen kuva. Jos haluat tarkastella tietyn ohjausobjektin tapahtumaominaisuuksia, valitse ohjausobjekti napsauttamalla sitä. Jos haluat tarkastella koko lomakkeen tai raportin tapahtumaominaisuuksia, valitse ominaisuusikkunan yläreunan avattavasta luettelosta Lomake tai Raportti.

      Access avaa Visual Basic Editorin ja näyttää tapahtumatoimintosarjan luokkamoduulissaan. Voit tarkastella muita samassa luokkamoduulissa olevia toimintosarjoja vierittämällä ylös tai alas.

Yleisten makrojen muuntaminen

  1. Napsauta siirtymisruudussa hiiren kakkospainikkeella makroa, jonka haluat muuntaa, ja valitse sitten Rakennenäkymä.

  2. Valitse Makron rakennenäkymä -välilehden Työkalut-ryhmästäMuunna makrot Visual Basiciksi.

  3. Valitse Muunnettava makro -valintaikkunassa haluamasi asetukset ja valitse sitten Muunna.

    Access muuntaa makron ja avaa Visual Basic Editorin.

  4. VBA-koodin tarkasteleminen ja muokkaaminen:

    1. Jos Project Explorer -ruutu ei ole näkyvissä Visual Basic Editorissa, valitse Näytä-valikosta Project Explorer.

    2. Laajenna käsittelemäsi tietokannan nimen alapuolella oleva rakenne.

    3. Kaksoisnapsauta Moduulit-kohdassa moduulia Muunnettu makro - makron nimi.

      Visual Basic Editor avaa moduulin.

VBA-funktion liittäminen tapahtumaominaisuuteen

Kun muunnat yleisen makron VBA-muotoon, VBA-koodi sijoitetaan perusmoduuliin. Toisin kuin luokkamoduuli, perusmoduuli ei ole osa lomaketta tai raporttia. Haluat todennäköisesti liittää funktion lomakkeen, raportin tai ohjausobjektin tapahtumaominaisuuteen, jotta koodi suoritetaan juuri halutussa paikassa ja haluttuna aikana. Voit tehdä tämän joko kopioimalla VBA-koodin luokkamoduuliin ja liittämällä sen sitten tapahtumaominaisuuteen tai määrittämällä kutsun tapahtumaominaisuudesta perusmoduuliin seuraavien ohjeiden mukaisesti.

  1. Kirjoita funktion nimi muistiin Visual Basic Editorista. Jos esimerkiksi muunsit makron nimeltä OmaMakro, funktion nimi on OmaMakro().

  2. Sulje Visual Basic Editor.

  3. Napsauta siirtymisruudussa hiiren kakkospainikkeella lomaketta tai raporttia, johon haluat liittää funktion, ja valitse sitten Rakennenäkymä.

  4. Napsauta ohjausobjektia tai osaa, johon haluat liittää funktion.

  5. Jos ominaisuusikkuna ei ole vielä näytössä, tuo se näyttöön painamalla F4-näppäintä.

  6. Valitse ominaisuusikkunan Tapahtuma-välilehdessä tapahtumaominaisuusruutu, johon haluat liittää funktion.

  7. Kirjoita ominaisuusruutuun yhtäläisyysmerkki (=) ja sen perään funktion nimi, esimerkiksi =OmaMakro(). Muista sisällyttää sulkeet.

  8. Tallenna lomake tai raportti valitsemalla pikatyökalurivillä Tallenna.

  9. Kaksoisnapsauta lomaketta tai raporttia siirtymisruudussa ja testaa, että koodi toimii oikein.

Tiedät nyt VBA-koodin lisäämisen perusvaiheet tietokantaan. Tässä artikkelissa kerrotaan vain perustoiminnoista, joiden avulla pääset alkuun. On olemassa monia erinomaisia viitekirjoja ja verkkoresursseja, joiden avulla voit kehittää ohjelmointitaitojasi.

Katso myös

Käyttöliittymämakron luominen

Access-makron suorittaminen pikanäppäinten avulla

Toimintojen käynnistyksen automatisointi makron avulla

Tietokannan avaamisen yhteydessä suoritettavan makron luominen

Tietokantaobjektien tapahtumien järjestys

Sivun alkuun

Tarvitsetko lisäohjeita?

Haluatko lisää vaihtoehtoja?

Tutustu tilausetuihin, selaa harjoituskursseja, opi suojaamaan laitteesi ja paljon muuta.

Osallistumalla yhteisöihin voit kysyä kysymyksiä ja vastata niihin, antaa palautetta sekä kuulla lisää asiantuntijoilta, joilla on runsaasti tietoa.