Johdanto Access-ohjelmointiin

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 tutustua Accessin ohjelmointityökaluihin.

Tämän artikkelin sisältö

Mitä ohjelmointi on?

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

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

Tietoja makroista

Tietoja VBA-koodista

Makrojen muuntaminen VBA-koodiksi

Mitä ohjelmointi on?

Accessissa ohjelmoinnilla tarkoitetaan toimintojen lisäämistä tietokantaan 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 hämmentää Access-käyttäjiä, koska Accessissa termillä ”makro” tarkoitetaan nimettyä makrotoimintoryhmää, joka kootaan käyttämällä Makron muodostinta. Accessin makrotoiminnot edustavat vain osaa 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ä Accessin ohjeartikkeleissa Access-makrosta käytetään termiä makro. 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. Tapahtumia voivat käynnistää myös Accessin ulkopuoliset tekijät, kuten järjestelmätapahtumat, tai muihin tapahtumiin liittyvät makrot tai toimintosarjat. 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 2010 -versiosta alkaen Accessissa on ollut monia uusia makrotoimintoja, joiden avulla voit luoda tehokkaampia makroja kuin Accessin aiemmilla versioilla. 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. Accessin aiemmissa versioissa näitä ominaisuuksia oli mahdollista käyttää vain VBA-koodin 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äyttää valmiita funktioita tai luoda omia funktioita    Access sisältää monia valmiita funktioita, kuten IPmt-funktion, joka laskee koron. 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    Suorittamalla makron SuoritaSovellus-toiminnon voit ajaa toisen ohjelman (kuten Microsoft Excelin) Accessista, mutta makron avulla ei voi tehdä juurikaan muuta Accessin ulkopuolella. 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. Access-tiedostoon (.accdb) ohjattu toiminto luo makron, joka on upotettu komentopainikkeen Napsautettaessa-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. Avaa Ohjausobjektit-valikoima napsauttamalla Rakenne-välilehden alanuolta ja varmista, että Käytä ohjattua ohjausobjektien luomista -vaihtoehto on valittuna.

  3. Valitse Rakenne-välilehden Ohjausobjektit-valikoimasta Painike.

  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 muun kuvan, saat näkyviin luettelon kaikista Accessin tarjoamista komentopainikekuvista valitsemalla Näytä kaikki kuvat, tai voit valita muualle tallennetun kuvan valitsemalla Selaa.

      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 Napsautettaessa-ominaisuusruudussa Muodosta-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 Rakenne-välilehden Sulje‑ryhmästä Sulje. Jos Access kehottaa sinua tallentamaan muutokset ja päivittämään ominaisuuden, tallenna muutokset valitsemalla Kyllä tai hylkää muutokset valitsemalla Ei.

  10. Valitse Aloitus-välilehden Näkymät-ryhmästä Näkymä 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.

Access-makroja voi pitää eräänlaisena yksinkertaistettuna ohjelmointikielenä, jonka avulla voi luoda koodia muodostamalla suoritettavien toimintojen luettelon. 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:

Huomautus: Huomaa, että Access 2007:n Makron muodostin poikkesi yllä olevasta kuvasta. Access 2007:n Makron muodostimessa oli rivejä ja sarakkeita, joissa lueteltiin makron eri toiminnot.

Makron muodostimen avaaminen:

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

Sivun alkuun

Tietoja VBA-koodista

Samaan tapaan kuin makroilla, VBA-koodin avulla voit lisätä Access-sovellukseen automaatiota ja muita toiminallisuuksia. Voit laajentaa VBA-koodia käyttämällä kolmannen osapuolen ohjausobjekteja, ja voit kirjoittaa omia tarpeitasi vastaavia funktioita ja toimintosarjoja.

Pääset nopeasti alkuun VBA-ohjelmoinnissa luomalla ensin Access-makron ja muuntamalla sen 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, saat lisätietoja kustakin avainsanasta napsauttamalla avainsanoja ja painamalla F1-näppäintä, jotta Access Developerin ohje avautuu. Voit tutustua Access Developerin ohjeeseen ja löytää uusia komentoja, joiden avulla voit suorittaa haluamiasi ohjelmointitehtäviä.

Sivun alkuun

Makrojen muuntaminen VBA-koodiksi

Accessin avulla voit muuntaa makroja 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.

Huomautus: Voit lisätä Visual Basic for Applications (VBA) -koodia verkkotietokantaan, mutta et kuitenkaan voi suorittaa kyseistä koodia, kun tietokanta on käynnissä selaimessa. Jos verkkotietokanta sisältää VBA-koodia, sinun on avattava verkkotietokanta Accessissa ennen kuin voit suorittaa koodin. Jos haluat suorittaa ohjelmointitehtäviä verkkotietokannassa, käytä sen sijaan Access-makroja.

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 Rakenne-välilehden Työkalut-ryhmästä joko Muunna lomakkeen makrot Visual Basic -muotoon tai Muunna raportin makrot Visual Basic -muotoon.

  3. Valitse Muunnettavat lomakemakrot- tai Muunnettavat raporttimakrot -valintaikkunassa, haluatko Accessin lisäävän virheenkäsittelykoodin luotuihin funktioihin. Jos makroissa on kommentteja, valitse, haluatko sisällyttää ne funktioihin kommentteina. Jatka valitsemalla Muunna.

    Jos lomakkeessa tai raportissa ei ole luokkamoduulia, Access luo sellaisen ja lisää moduuliin toimintosarjan kullekin lomakkeeseen tai raporttiin liitetylle makrolle. Access myös muuttaa lomakkeen tai raportin tapahtumaominaisuuksia niin, että ne suorittavat uudet VBA-toimintosarjat 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 muodostuspainiketta 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 sen luokkamoduulissa. 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 Rakenne-välilehden Työkalut-ryhmästä Muunna makrot Visual Basic -muotoon.

  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.

Olet nyt tutustunut VBA-koodin tietokantaan lisäämisen perusteisiin. Tässä artikkelissa annetaan vain perusohjeet, joilla pääset alkuun. Aiheesta on olemassa paljon hyviä tietolähteitä ja verkkoresursseja, joiden avulla voit kehittää ohjelmointitaitojasi.

Sivun alkuun

Kehitä Office-taitojasi
Tutustu koulutusmateriaaliin
Saat uudet ominaisuudet ensimmäisten joukossa
Liity Office Insider -käyttäjiin

Oliko näistä tiedoista hyötyä?

Kiitos palautteesta!

Kiitos palautteestasi! Näyttää siltä, että Office-tukiedustajamme avusta voi olla sinulle hyötyä.

×