Johdanto Access-ohjelmointiin

Käytetään kohteeseen
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Kun luot uuden tietokannan, aloitat yleensä luomalla tietokantaobjekteja, kuten taulukoita, lomakkeita ja raportteja. Jossain vaiheessa sinun on ehkä lisättävä ohjelmointia prosessien automatisoimiseksi ja näiden objektien yhdistämiseksi. Tässä artikkelissa esitellään Accessin ohjelmointityökalut.

Tämän artikkelin sisältö

Mitä ohjelmointi on?

Accessissa ohjelmointi tarkoittaa toimintojen lisäämistä tietokantaan Access-makrojen tai Visual Basic for Applications (VBA) koodin avulla. Voit esimerkiksi luoda lomakkeen ja raportin ja lisätä sitten komentopainikkeen lomakkeeseen, joka avaa raportin, kun valitset sen. Tällöin luot makron tai VBA toimintosarjan ja määrität komentopainikkeen tapahtumaominaisuuden niin, että komentopainike OnClick suorittaa makron tai toimintosarjan. Voit tehdä työn yksinkertaisella toiminnolla, kuten avaamalla raportin, käyttämällä ohjattua komentopainikkeen luomista tai voit poistaa ohjatun toiminnon käytöstä ja ohjelmoida sen itse.

Huomautus

Monet Microsoft Office -ohjelmat käyttävät termiä "makro" koodiin viittaamiseen VBA . Tämä voi hämmentää Access-käyttäjiä, koska Accessissa termi "makro" viittaa nimettyyn makrotoimintojen kokoelmaan, jonka kokoat makron muodostimen avulla. Access-makrotoiminnot edustavat vain alijoukkoa -sovelluksessa käytettävissä VBAolevista komennoista. Makron muodostin tarjoaa rakenteellisemman käyttöliittymän kuin Visual Basic Editor, joten voit lisätä ohjelmointia ohjausobjekteihin ja objekteihin ilman oppimiskoodia VBA . Accessin ohjeartikkeleissa Access-makroja kutsutaan makroiksi. VBA koodia kutsutaan VBA koodiksi, funktioksi tai toimintosarjaksi. VBA koodi tallennetaan luokkamoduuleihin, jotka ovat osa yksittäisiä lomakkeita tai raportteja ja sisältävät yleensä koodia vain näille objekteille, ja moduuleihin, joita ei ole sidottu tiettyihin objekteihin ja jotka sisältävät yleensä yleistä koodia, jota voit käyttää koko tietokannassa.

Objekteilla, kuten lomakkeilla ja raporteilla, sekä ohjausobjekteilla, kuten komentopainikkeilla ja tekstiruuduilla, on tapahtumaominaisuuksia, joihin voit liittää makroja tai toimintosanat. Jokainen tapahtumaominaisuus liittyy tiettyyn tapahtumaan, kuten hiiren napsauttamiseen, lomakkeen avaamiseen tai tekstiruudun tietojen muuttamiseen. Tapahtumat voivat johtua myös Accessin ulkopuolisista tekijöistä, kuten järjestelmätapahtumista, tai makroista tai toimintosyistä, jotka on liitetty muihin tapahtumiin. Tietokannasta voi tulla monimutkainen, jos useiden objektien moniin tapahtumaominaisuuksiin lisätään useita makroja tai toimintosyistä. Useimmissa tapauksissa saat kuitenkin haluamasi tulokset käyttämällä hyvin vähän ohjelmointia.

Sivun alkuun

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

Päätös käyttää makroja tai molempia riippuu pääasiassa siitä, VBAmiten tietokanta otetaan käyttöön tai jaetaan. Jos tietokanta on esimerkiksi tallennettu tietokoneeseen, olet ainoa käyttäjä ja haluat käyttää VBA koodia, voit halutessasi käyttää VBA useimpia ohjelmointitehtäviä. Jos kuitenkin aiot jakaa tietokannan muiden tiedostopalvelimen käyttäjien kanssa, kannattaa ehkä välttää käyttöä VBA tietoturvaongelmien vuoksi.

Käytä makroja tai VBA koodia kahdella tavalla: suojauksella ja haluamallasi toiminnolla. Tietoturvalla on merkitystä, koska VBA sitä voidaan käyttää koodin luomiseen, joka vaarantaa tietosi tai vahingoittaa tietokoneesi tiedostoja. Kun käytät jonkun toisen luomaa tietokantaa, ota koodi käyttöön VBA vain, jos tiedät, että tietokanta on peräisin luotettavasta lähteestä. Kun luot tietokannan, jota muut käyttäjät käyttävät, yritä välttää sisällyttämistä ohjelmointityökaluihin, jotka edellyttävät käyttäjää nimenomaisesti luottamaan tietokantaan. Yleiset tekniikat tämän vaatimuksen välttämiseksi näkyvät myöhemmin tässä osassa.

Jos haluat suojata tietokannan, yritä käyttää makroja silloin, kun voit, ja käytä VBA niitä vain toimintoihin, joita ei voi suorittaa makrotoiminnoilla. Yritä myös käyttää vain makrotoimintoja, jotka eivät edellytä tietokannan luottamista, ennen kuin ne voidaan suorittaa. Makrotoimintojen rajoittaminen tällä tavalla auttaa käyttäjiä luottamaan siihen, että tietokannassa ei ole ohjelmointia, joka voisi vahingoittaa heidän tietokoneidensa tietoja tai muita tiedostoja.

Makrojen osalta huomioitavat asiat

Access sisältää monia makrotoimintoja, joiden avulla voit luoda tehokkaampia makroja kuin Accessin aiemmat versiot sallivat. 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ämä ominaisuudet olivat käytettävissä vain :ssä VBA. Voit myös upottaa makron suoraan objektin tai ohjausobjektin tapahtumaominaisuuteen. Upotetusta makrosta tulee osa objektia tai ohjausobjektia, ja se pysyy sen mukana, jos objekti tai ohjausobjekti siirretään tai kopioidaan.

Makrojen avulla on helppo käsitellä monia ohjelmointitehtäviä, kuten lomakkeiden avaaminen ja sulkeminen ja raporttien suorittaminen. Voit nopeasti yhdistää luomasi tietokantaobjektit, kuten lomakkeet ja raportit, koska syntaksia ei ole juurikaan muistettava. 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ää . -makroryhmän AutoKeysluomista.

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

    Huomautus

    Makro AutoExec suoritetaan ennen muita makroja tai VBA koodia, vaikka olisit määrittänyt käynnistyslomakkeen Accessin asetukset -valintaikkunassa ja liittänyt makron OnOpen tai VBA koodin kyseisen lomakkeen tai OnLoad tapahtuman.

Lisätietoja makrojen luomisesta on artikkelissa Makrojen ymmärtäminen.

VBA-koodin osalta huomioitavat asiat

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

  • Käytä valmiita funktioita tai luo omasi. Accessissa on useita valmiita funktioita, kuten IPmt, jotka laskevat korkomaksun. Näiden funktioiden avulla voit suorittaa laskutoimituksia luomatta monimutkaisia lausekkeita. -toiminnolla VBAvoit myös luoda omia funktioita, jotka suorittavat laskutoimituksia, jotka ylittävät lausekkeen kyvyn tai korvaavat monimutkaisia lausekkeita. Voit myös käyttää luomiasi funktioita lausekkeissa, jotta voit käyttää yleistä toimintoa useampaan kuin yhteen objektiin.
  • Objektien luominen tai käsitteleminen. Useimmissa tapauksissa objektin luominen ja muokkaaminen on helpointa objektin rakennenäkymässä. Joissakin tilanteissa haluat ehkä kuitenkin käsitellä objektin määritelmää koodissa. -toiminnolla VBAvoit käsitellä kaikkia tietokannan objekteja sekä itse tietokantaa.
  • Suorittaa järjestelmätason toimintoja. Voit suorittaa RunApp makrossa toiminnon toisen ohjelman, kuten Microsoft Excelin, suorittamiseksi Accessissa, mutta et voi käyttää makroa tehdäksesi paljon muuta Accessin ulkopuolella. -toiminnolla VBAvoit tarkistaa, onko tietokoneessa tiedostoa, käyttää automaatiota tai dynaamista tietojenvaihtoa (DDE) yhteydenpitoon muiden Microsoft Windows -pohjaisten ohjelmien, kuten Excelin, kanssa ja puhelufunktioita Windowsin dynaamisen linkin kirjastoissa (DLLs).
  • Käsitellä tietueita yksi kerrallaan. Voit VBA selata tietuejoukkoa yksi tietue kerrallaan ja suorittaa toiminnon kullekin tietueelle. Makrot sen sijaan toimivat kokonaisten tietuejoukkojen kanssa samanaikaisesti.

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 OnClick komentopainikkeen ominaisuuteen. .mdb Ohjattu toiminto luo VBA koodia tai .adp tiedostoa, koska upotetut makrot eivät ole käytettävissä näissä tiedostomuodoissa. Kummassakin tapauksessa voit 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 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ä vaihe on valinnainen, eikä tätä nimeä näytetä komentopainikkeessa. On kuitenkin hyvä kirjoittaa kuvaava nimi, jotta komentopainikkeeseen on viitattava myöhemmin, esimerkiksi silloin, kun määrität lomakkeen ohjausobjekteille sarkainjärjestystä, komentopainikkeet on helpompi erottaa toisistaan. Jos komentopainike sulkee esimerkiksi lomakkeen, voit nimetä sen cmdClose tai CommandClose.

  8. Valitse Valmis. Access sijoittaa komentopainikkeen lomakkeeseen.

  9. Jos haluat nähdä, mitä ohjattu toiminto on ohjelmoinut puolestasi, toimi seuraavasti:

    1. Jos ominaisuusikkuna ei ole vielä näkyvissä, tuo se näkyviin painamalla F4-näppäintä .

    2. Valitse ominaisuusikkunasta Tapahtuma-välilehti.

    3. Napsauta Napsautetaan-ominaisuusruudussaMuodosta-painiketta .

      Access käynnistää Makron muodostimen ja näyttää ohjatun toiminnon luoman makron. Voit halutessasi muokata makroa. Lisätietoja on artikkelissa Makrojen ymmärtäminen. Kun olet valmis, sulje Makron muodostin valitsemalla Makron rakennenäkymä -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 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, voit liittää painikkeen OnClick tapahtumaominaisuuden makroon, joka sisältää komennot, jotka haluat painikkeen suorittavan aina, kun se valitaan.

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 moduuliin. Makrot sisältävät alijoukon komennoista, jotka ovat käytettävissä :ssä VBA, ja useimpien käyttäjien mielestä makron luominen on helpompaa kuin koodin kirjoittaminen VBA .

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

Makron muodostimen avaaminen:

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

Sivun alkuun

Tietoja VBA-koodista

Makrojen VBA tavoin voit lisätä Access-sovellukseen automaatiota ja muita toimintoja. Voit laajentaa VBA toimintoa kolmannen osapuolen ohjausobjekteilla ja kirjoittaa omia funktioita ja toimintosyistä erityistarpeita varten.

Pääset nopeasti alkuun VBA luomalla ensin Access-makron ja muuntamalla sen sitten koodiksi VBA . Ohjeet tähän ovat artikkelissa Makrojen muuntaminen VBA-koodiksi. Tämä toiminto luo uuden VBA moduulin, joka suorittaa makrossa vastaavat toiminnot. Se myös avaa Visual Basic Editorin, jotta voit muokata toimintosarjaa. Kun käytät Visual Basic Editoria, voit napsauttaa avainsanoja ja käynnistää Access developerin ohjeen painamalla F1-näppäintä ja saada lisätietoja kustakin avainsanasta. 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 makrot automaattisesti moduuleiksi VBA tai luokkamoduuleiksi. Voit muuntaa lomakkeeseen tai raporttiin liitettyjä makroja riippumatta siitä, ovatko ne erillisiä objekteja vai upotettuja makroja. Voit myös muuntaa yleisiä makroja, joita ei ole liitetty tiettyyn lomakkeeseen tai raporttiin.

Lomakkeeseen tai raporttiin liitettyjen makrojen muuntaminen

Tämä prosessi muunnetaan VBA makroiksi, joihin lomake tai raportti viittaa tai jotka on upotettu lomakkeeseen tai raporttiin tai mihin tahansa sen ohjausobjektiin, 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 siirtymisruudussa lomaketta tai raporttia 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 Accessin lisäävän virheenkäsittelykoodin luomiaan funktioihin. Jos makrot sisältävät kommentteja, valitse myös, haluatko sisällyttää kommentit funktioihin. Jatka valitsemalla Muunna. Jos lomakkeessa tai raportissa ei ole luokkamoduulia, Access luo sellaisen ja lisää moduuliin toimintosarjan kullekin lomakkeeseen tai raporttiin liitetylle makrolle. Access muuttaa myös lomakkeen tai raportin tapahtumaominaisuuksia niin, että ne suorittavat uudet VBA toimintosotteet makrojen sijaan.

  4. Koodin tarkasteleminen ja muokkaaminen VBA :

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

    2. Napsauta ominaisuusikkunan Tapahtuma-välilehdessä mitä tahansa ominaisuusruutua, jossa näkyy [Event Procedure], ja napsauta sitten Muodosta-painiketta . 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 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. Koodin tarkasteleminen ja muokkaaminen VBA :

    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 moduuliaConverted Macro-<macro name> Moduulit-kohdassa. Visual Basic Editor avaa moduulin.

VBA-funktion liittäminen tapahtumaominaisuuteen

Kun muunnat yleisen makron VBAVBA muotoon , koodi sijoitetaan vakiomoduuliin. 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 kopioimalla VBA koodin luokkamoduuliin ja liittämällä sen sitten tapahtumaominaisuuteen tai soittamalla erikoispuhelun tapahtumaominaisuudesta vakiomoduuliin seuraavasti.

  1. Kirjoita funktion nimi muistiin Visual Basic Editorista. Jos muunsit esimerkiksi makron nimeltä MyMacro, funktion nimi on MyMacro().
  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äkyvissä, tuo se näkyviin painamalla F4-näppäintä .
  6. Valitse ominaisuusikkunan Tapahtuma-välilehdessä tapahtumaominaisuusruutu, johon haluat liittää funktion.
  7. Kirjoita ominaisuusruutuun yhtäläisyysmerkki (=) ja sen jälkeen funktion nimi, =MyMacro()esimerkiksi . 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.

Nyt tiedät koodin lisäämisen VBA perusvaiheet tietokantaan. Tässä artikkelissa kerrotaan vain perustoiminnoista, joiden avulla pääset alkuun. Monet erinomaiset viitekirjat ja verkkoresurssit auttavat kehittämään 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