Applies ToAccess za Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Ko ustvarjate novo zbirko podatkov, običajno začnete tako, da ustvarite več podatkovnih predmetov, kot so tabele, obrazci in poročila. Sčasoma pridete do točke, ko morate dodati določeno programiranje, da avtomatizirate nekatere procese in povežete podatkovne predmete. V tem članku so na voljo orodja za programiranje v Access.

V temu članku

Kaj je programiranje?

V Access programiranje je postopek dodajanja funkcionalnosti zbirki podatkov z Access makri ali kodo Visual Basic for Applications (VBA). Denimo, da ste ustvarili obrazec in poročilo, nato pa želite obrazcu dodati ukazni gumb, ki odpre poročilo. Programiranje je v tem primeru proces ustvarjanja makra ali postopka VBA in nastavitev lastnosti dogodka OnClick ukaznega gumba tako, da klikanje ukaznega gumba zažene makro ali postopek. Za preprost postopek, kot je odpiranje poročila, lahko za programiranje uporabite čarovnika za ukazne gumbe ali pa čarovnika izklopite in programiranje izvedete sami.

Opomba: Številni Microsoft Officeovi programi kodo VBA označujejo z izrazom »makro«. To lahko zmede uporabnike Access, ker se v programu Access izraz »makro« nanaša na imenovano zbirko dejanj makra, ki jih lahko združite z graditeljem makrov. Access dejanja makra predstavljajo le podnabor ukazov, ki so na voljo v vba. Graditelj makrov zagotavlja bolj strukturiran vmesnik kot urejevalnik za Visual Basic in vam tako omogoča dodajanje programiranja kontrolnikom in predmetom, ne da bi se morali naučiti uporabljati kodo VBA. Ne pozabite, da se Access člankih pomoči Access makri imenujejo makri. In obratno, koda VBA se imenuje VBA, koda, funkcija ali postopek. Koda VBA je vsebovana v modulih razreda (ki so del posameznih obrazcev ali poročil in običajno vsebujejo kodo le za te predmete) in modulih (ki niso povezani z določenimi predmeti in običajno vsebujejo »globalno« kodo, ki jo lahko uporabljate v celotni zbirki podatkov).

Predmeti (kot so obrazci in poročila) in kontrolniki (na primer ukazni gumbi in polja z besedilom) imajo različne lastnosti dogodka, ki jih lahko priložite makrom ali procedru. Vsaka lastnost dogodka je povezana z določenim dogodkom, na primer s klikom miške, odpiranjem obrazca ali spreminjanjem podatkov v polju z besedilom. Dogodke lahko sprožijo tudi dejavniki zunaj sistema Access, na primer sistemski dogodki, ali makri ali postopki, ki so priloženi drugim dogodkom. Zbirka podatkov je lahko zapletena, če dodate številne makre ali postopke več lastnosti dogodka za številne predmete, vendar lahko v večini primerov želene rezultate dosežete tako, da uporabite zelo malo programiranja.

Na vrh strani

Ali naj uporabim makre ali kodo VBA?

Uporaba makrov, kode VBA ali obeh je odvisna predvsem od odločitve, kako želite uvesti in porazdeliti zbirko podatkov. Če je zbirka podatkov na primer shranjena v vašem računalniku in ste edini uporabnik, obenem pa znate uporabljati kodo VBA, se lahko odločite, da boste večino programskih opravil izvedli s kodo VBA. Če pa nameravate dati zbirko podatkov v skupno uporabo z drugimi osebami v datotečnem strežniku, priporočamo, da ne uporabite kode VBA zaradi varnostnih razlogov.

Odločitev, ali uporabiti makre ali kodo VBA, naj temelji na dveh postavkah: varnosti in želeni funkcionalnosti. VBA lahko predstavlja varnostno težavo, saj omogoča ustvarjanje kode, ki lahko ogrozi varnost vaših podatkov ali škoduje datotekam v računalniku. Če uporabljate zbirko podatkov, ki je niste ustvarili sami, omogočite kodo VBA le, če ste prepričani, da je zbirko podatkov ustvaril zaupanja vreden vir. Ko ustvarite zbirko podatkov, ki jo bodo uporabljale druge osebe, ne uporabljajte orodij za programiranje, ki od uporabnika zahtevajo, da za zbirko podatkov posebej odobri zaupanja vredno stanje. Učinkoviti pristopi, kako se izogniti potrebi, da uporabniki zaupajo vaši zbirki podatkov, bodo obravnavani v nadaljevanju tega razdelka.

Če želite zagotoviti varnost zbirke podatkov, uporabljajte makre, ko je to mogoče, programiranje VBA pa uporabite le za postopke, ki jih ni mogoče izvesti z dejanji makra. Poleg tega uporabljajte le dejanja makra, ki za delovanje ne zahtevajo odobritve zaupanja vrednega stanja za zbirko podatkov. Takšna omejitev uporabe dejanj makra uporabnikom daje zagotovilo, da zbirka podatkov ne vsebuje programiranja, ki bi lahko škodovalo podatkom ali datotekam v njihovih računalnikih.

Kaj je treba vedeti o makrih

Access vsebuje številna nova dejanja makra, ki vam omogočajo ustvarjanje zmogljivejših makrov, kot jih lahko ustvarite s starejšimi različicami Access. Zdaj lahko na primer ustvarjate in uporabljate globalne začasne spremenljivke z dejanji makra in odpravljate napake z novimi dejanji makra za obravnavanje napak. V starejših različicah Access so te vrste funkcij na voljo le s programom VBA. Poleg tega lahko vdelate makro neposredno v lastnost dogodka predmeta ali kontrolnika. Vdelani makro postane del predmeta ali kontrolnika in se ohrani s predmetom ali kontrolnikom tudi, če tega premaknete ali kopirate.

Makri omogočajo preprost način za obravnavanje številnih programskih opravil, kot so odpiranje in zapiranje obrazcev in zagon poročil. Ustvarjene podatkovne predmete (obrazce, poročila in podobno) lahko hitro in preprosto združite, saj ni veliko sintakse, ki si jo morate zapolniti. Argumenti za posamezna dejanja so prikazana v graditelju makrov.

Poleg večje varnosti in preproste uporabe, ki jo zagotavljajo makri, morate makre uporabljati za izvajanje teh opravil:

  • Dodelitev dejanja ali niza dejanj tipki. Ustvariti morate skupino makrov imenovano »AutoKeys«.

  • Izvedba dejanja ali niza dejanj ob prvem odpiranju zbirke podatkov. Ustvariti morate makro imenovan »AutoExec«.

    Opomba:  Makro »AutoExec « se zažene pred katerim koli drugim makrom ali kodo VBA, tudi če ste določili obrazec zagona v pogovornem oknu Accessove možnosti in dodali makro ali kodo VBA dogodku OnOpen ali OnLoad tega obrazca.

Če želite več informacij o ustvarjanju makrov, preberite razdelek Razumevanje makrov.

Kaj je treba vedeti o kodi VBA

Programiranje VBA uporabite namesto makrov, če želite narediti nekaj od tega:

  • Uporabite vgrajene funkcije    ali ustvarite lastne funkcije, kiAccess številne vgrajene funkcije, kot je funkcija IPmt , ki izračuna plačilo obresti. S temi vgrajenimi funkcijami lahko izvajate izračune, ne da bi morali ustvariti zapletene izraze. Tudi s kodo VBA lahko ustvarite lastne funkcije, da izvajate izračune, ki presegajo zmogljivosti izraza, ali zamenjate zapletene izraze. Poleg tega funkcije, ki jih ustvarite v izrazih, omogočajo uporabo pogoste operacije za več predmetov.

  • Ustvariti ali spremeniti predmete    V večini primerov boste videli, da je lažje ustvariti in spremeniti predmet v pogledu načrta določenega predmeta. V nekaterih primerih pa boste morda želeli spremeniti definicijo predmeta v kodi. S kodo VBA lahko spremenite vse predmete v zbirki podatkov, tudi samo zbirko podatkov.

  • Izvajanje dejanj na ravni sistema    Dejanje ZaženiApp v makru lahko izvedete, če želite zagnati drug program (na primer Microsoft Excel) v programu Access, vendar pa z makrom ne morete narediti veliko drugega zunaj Access. S programom VBA lahko preverite, ali datoteka obstaja v računalniku, uporabite avtomatizacijo ali dinamično izmenjavo podatkov (DDE) za komunikacijo z drugimi programi sistema Microsoft Windows, kot je Excel, in funkcije klicanja v dinamičnih povezovalnih knjižnicah sistema Windows (DLL-ji).

  • Spremeniti vsak zapis posebej    S kodo VBA se lahko pomikate po naboru zapisov, enega za drugim, in izvedete operacijo na vsakem zapisu posebej. Nasprotno od kode VBA pa makri zajamejo celoten nabor zapisov hkrati.

Na vrh strani

Uporaba čarovnika za ukazne gumbe za izvajanje običajnih programskih opravil

Če želite obrazcu dodati ukazni gumb, vam lahko čarovnik za ukazne gumbe pomaga začeti programirati. Čarovnik vam pomaga ustvariti ukazni gumb, ki izvede določeno opravilo. V Access (.accdb) čarovnik ustvari makro, ki je vdelan v lastnost OnClick ukaznega gumba. V datoteki .mdb ali .adp čarovnik ustvari kodo VBA, ker vdelani makri niso na voljo v teh oblikah zapisa datoteke. V obeh primerih lahko nato spremenite ali izboljšate makro oz. kodo VBA tako, da bo ustrezala vašim potrebam.

  1. V podoknu za krmarjenje z desno tipko miške kliknite obrazec, kateremu želite dodati ukazni gumb, in nato še Pogled načrta.

  2. Na zavihku Načrt obrazca kliknite puščico dol, da prikažete galerijo Kontrolniki, in se prepričajte, da je izbrana možnost Uporabi čarovnike za kontrolnike.

  3. Na zavihku Načrt obrazca v galeriji Kontrolniki kliknite Gumb.

  4. Na mreži načrta obrazca kliknite mesto, kamor želite postaviti ukazni gumb.

    Zažene se čarovnik za ukazne gumbe.

  5. Na prvi strani čarovnika kliknite posamezne kategorije na seznamu Kategorije, da si ogledate, katera dejanja lahko čarovnik programira za ukazni gumb. Na seznamu Dejanja izberite želeno dejanje, nato pa kliknite Naprej.

  6. Kliknite možnost Besedilo ali Slika, glede na to, ali želite, da je na ukaznem gumbu prikazano besedilo ali slika.

    • Če želite, da je prikazano besedilo, lahko uredite besedilo v polju ob možnosti Besedilo.

    • Če želite, da je prikazana slika, čarovnik predlaga sliko na seznamu. Če želite izbrati drugo sliko, potrdite polje Pokaži vse slike, da prikažete seznam vseh slik ukaznega gumba, ki so na voljo Access, ali kliknite Prebrskaj, da izberete sliko, ki je shranjena na drugem mestu.

      Kliknite Naprej.

  7. Vnesite smiselno ime za ukazni gumb. Ta korak je izbiren in ime ni prikazano na ukaznem gumbu. Kljub temu priporočamo, da vnesete smiselno ime, tako da boste lažje razlikovali med ukaznimi gumbi, ko se boste morda morali kasneje sklicevati nanje (če na primer nastavljate zaporedje premikanja za kontrolnike v obrazcu). Če ukazni gumb zapre obrazec, ga lahko na primer poimenujete »cmdClose« ali »CommandClose«.

  8. Kliknite Dokončaj.

    Access ukazni gumb postavi v obrazec.

  9. Če si želite ogledati, kaj je čarovnik »programiral« za vas, upoštevajte te izbirne korake:

    1. Če list z lastnostmi še ni prikazan, pritisnite F4, da ga prikažete.

    2. Na listu z lastnostmi kliknite zavihek Dogodek.

    3. V polju z lastnostmi Ob kliku kliknite gumb Graditev , Slika gumba.

      Access zažene graditelja makrov in prikaže makro, ki ga je ustvaril čarovnik. Če želite, lahko makro uredite (za dodatne informacije o urejanju makra si oglejte razdelek Razumevanje makrov). Ko končate, na zavihku Načrt makra v skupini Zapri kliknite Zapri, da zaprete graditelja makrov. Če Access, da shranite spremembe in posodobite lastnost, kliknite Da, da shranite spremembe, ali Ne, da zavrnete spremembe.

  10. Na zavihku Načrt obrazca v skupini Pogledi kliknite Pogled in nato Pogled obrazca. Kliknite nov ukazni gumb, da preverite njegovo delovanje.

Na vrh strani

Razumevanje makrov

Makro je orodje, ki omogoča avtomatiziranje opravil in dodajanje funkcionalnosti obrazcem, poročilom in kontrolnikom. Če na primer dodate ukazni gumb obrazcu, povežete lastnost dogodka OnClick gumba z makrom, ki vsebuje ukaze, za katere želite, da se izvedejo ob vsakem kliku gumba.

Priporočamo vam, da si Access makre predstavljate kot poenostavljen programski jezik, v katerem ustvarite kodo tako, da ustvarite seznam dejanj, ki jih želite izvesti. Ko ustvarite makro, izberete posamezno dejanje s spustnega seznama in nato vnesete zahtevane informacije za posamezna dejanja. Makri omogočajo dodajanje funkcionalnosti obrazcem, poročilom in kontrolnikom brez pisanja kode v modulu VBA. Makri zagotavljajo podnabor ukazov, ki so na voljo v kodi VBA, in večina ljudi lažje ustvari makro kot pa napiše kodo VBA.

Makro lahko ustvarite z graditeljem makrov, ki je prikazan na spodnji sliki.

Graditelj makrov v Accessu 2010

Če želite prikazati graditelja makrov:

  • Na zavihku Ustvari v skupini Makri in koda kliknite Makro.

Na vrh strani

Razumevanje kode VBA

Podobno kot makri vam tudi koda VBA omogoča dodajanje avtomatizacije in drugih funkcij v Access programa. Kodo VBA lahko razširite s kontrolniki neodvisnih izdelovalcev in tako napišete lastne funkcije in postopke, ki ustrezajo vašim zahtevam.

Programiranje VBA lahko hitro začnete tako, da najprej ustvarite Access in ga nato pretvorite v kodo VBA. Navodila, kako lahko to storite, so na voljo v razdelku Pretvorba makrov v kodo VBA. Ta funkcija ustvari nov modul VBA, ki izvaja enakovredne operacije v makru. Odpre tudi urejevalnik za Visual Basic, tako da lahko začnete spreminjati postopek. Ko delate v urejevalniku za Visual Basic, lahko kliknete ključne besede in pritisnete F1, da zaženete pomoč za razvijalce Access izveste več o posamezni ključni besedi. Nato lahko raziščete Access za razvijalce in odkrijete nove ukaze za izvajanje želenih programskih opravil.

Na vrh strani

Pretvorba makrov v kodo VBA

Uporabite lahko Access za samodejno pretvarjanje makrov v module VBA ali module razreda. Makre, ki so dodani obrazcu ali poročilu, lahko pretvorite, ne glede na to, ali so ločeni predmeti ali vdelani makri. Prav tako lahko pretvorite globalne makre, ki niso dodani določenemu obrazcu ali poročilu.

Pretvorba makrov, ki so dodani obrazcu ali poročilu

S tem postopkom v kodo VBA pretvorite katere koli makre, na katere se sklicuje (ali so vdelani v) obrazec ali poročilo (ali kateri koli njuni kontrolniki), in dodate kodo VBA modulu razreda obrazca ali poročila. Modul razreda postane del obrazca ali poročila in se premakne skupaj z obrazcem ali poročilo, če tega premaknete ali kopirate.

  1. V podoknu za krmarjenje z desno tipko miške kliknite obrazec ali poročilo in nato kliknite Pogled načrta.

  2. Na zavihku Načrt obrazca v skupini Orodja kliknite Pretvori makre obrazca v Visual Basic ali Pretvori makre poročila v Visual Basic.

  3. V pogovornem oknu Pretvori makre obrazca ali Pretvori makre poročila izberite, ali Access dodati kodo za obravnavanje napak funkcijam, ki jih ustvari. Če so v makrih na voljo kateri koli komentarji, izberite, ali naj bodo ti vključeni v funkcijah. Kliknite Pretvori, da nadaljujete.

    Če za obrazec ali poročilo ni na voljo nobenega modula razreda, Access ustvari enega in modulu doda postopek za vsak makro, ki je povezan z obrazcem ali poročilom. Access tudi lastnosti dogodka obrazca ali poročila, tako da zaženejo nove postopke VBA namesto makrov.

  4. Če si želite ogledati in urediti kodo VBA:

    1. Ko je obrazec ali poročilo odprto v pogledu načrta in list z lastnostmi še ni prikazan, pritisnite F4, da ga prikažete.

    2. Na zavihku Dogodek lista z lastnostmi kliknite katero koli polje z lastnostmi, ki prikaže [Dogodkovna procedura] in nato kliknite gumb za Slika gumba. Če si želite ogledati lastnosti dogodka za določen kontrolnik, kliknite kontrolnik, da ga izberete. Če si želite ogledati lastnosti dogodka za celoten obrazec ali poročilo, izberite Obrazec ali Poročilo s spustnega seznama na vrhu lista z lastnostmi.

      Access urejevalnik za Visual Basic in prikaže dogodkovno proceduro v modulu razreda. Pomaknete se lahko navzgor ali navzdol, da si ogledate katere koli druge postopke v istem modulu razreda.

Pretvorba globalnih makrov

  1. V podoknu za krmarjenje kliknite z desno tipko miške makro, ki ga želite pretvoriti, nato kliknite Pogled načrta.

  2. Na zavihku Načrt makra v skupini Orodja kliknite Pretvori makre v Visual Basic.

  3. V pogovornem oknu Pretvori makro izberite želene možnosti in kliknite Pretvori.

    Access pretvori makro in odpre urejevalnik za Visual Basic.

  4. Če si želite ogledati in urediti kodo VBA:

    1. V urejevalniku za Visual Basic (če podokno raziskovalca projekta ni prikazano) v meniju Pogled kliknite Raziskovalec projekta.

    2. Razširite drevo pod imenom zbirke podatkov, v kateri delate.

    3. V razdelku Moduli dvokliknite ime makra modula Pretvorjeni makro-.

      Urejevalnik za Visual Basic odpre modul.

Dodajanje funkcije VBA lastnosti dogodka

Ko pretvorite globalni makro v VBA, je koda VBA postavljena v standardni modul. Za razliko od modula razreda standardni modul ni del obrazca ali poročila. Verjetno boste želeli povezati funkcijo z lastnostjo dogodka v obrazcu, poročilu ali kontrolniku, tako da se koda izvaja ob času in na mestu, ki ga določite. To naredite tako, da kopirate kodo VBA v modul razreda in jo nato povežete z lastnostjo dogodka ali pa iz lastnosti dogodka posebej prikličete standardni modul tako, da upoštevate ta postopek.

  1. V urejevalniku za Visual Basic zabeležite ime funkcije. Če ste na primer pretvorili makro z imenom »MyMacro«, je ime funkcije »MyMacro()«.

  2. Zaprite urejevalnik za Visual Basic.

  3. V podoknu za krmarjenje z desno tipko miške kliknite obrazec ali poročilo, s katerim želite povezati funkcijo, nato pa kliknite Pogled načrta.

  4. Kliknite kontrolnik ali razdelek, s katerim želite povezati funkcijo.

  5. Če list z lastnostmi še ni prikazan, pritisnite F4, da ga prikažete.

  6. Na listu z lastnostmi na zavihku Dogodek kliknite polje z lastnostmi dogodka, s katerim želite povezati funkcijo.

  7. V polju z lastnostmi vnesite enačaj (=) in za njim ime funkcije – na primer =MyMacro(). Ne pozabite vključiti oklepajev.

  8. Shranite obrazec ali poročilo tako, da v orodni vrstici za hitri dostop kliknete Shrani.

  9. V podoknu za krmarjenje dvokliknite obrazec ali poročilo in preskusite, ali se koda ustrezno izvaja.

To so osnovni koraki za dodajanje kode VBA zbirki podatkov. V tem članku je obravnavan le uvod v začetek dela; na voljo so številni odlični priročniki in spletni viri, ki vam bodo pomagali pri izpopolnjevanju znanja programiranja.

Glejte tudi

Ustvarjanje makra uporabniškega vmesnika

Zagon Accessovega makra z bližnjico na tipkovnici

Avtomatizacija zagonskih dogodkov z makrom

Ustvarjanje makra, ki se zažene ob odpiranju zbirke podatkov

Vrstni red dogodkov za predmete zbirke podatkov

Na vrh strani

Ali potrebujete dodatno pomoč?

Ali želite več možnosti?

Raziščite ugodnosti naročnine, prebrskajte izobraževalne tečaje, preberite, kako zaščitite svojo napravo in še več.

Skupnosti vam pomagajo postaviti vprašanja in odgovoriti nanje, posredovati povratne informacije in prisluhniti strokovnjakom z bogatim znanjem.