Uvod v Accessovo programiranje

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 predstavljena orodja za programiranje v Accessu.

V temu članku

Kaj je programiranje?

Ali naj uporabim makre ali kodo VBA?

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

Razumevanje makrov

Razumevanje kode VBA

Pretvorba makrov v kodo VBA

Kaj je programiranje?

V Accessu je programiranje proces dodajanja funkcionalnosti zbirki podatkov tako, da uporabite Accessove makre 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«. Za uporabnike Accessa je to lahko nejasno, saj se v Accessu izraz »makro« nanaša na imenovano zbirko dejanj makra, ki jih lahko združite z graditeljem makrov. Dejanja makra v Accessu predstavljajo le podnabor ukazov, ki so na voljo v kodi 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 – v člankih s pomočjo za Access se Accessovi 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 (npr. obrazci in poročila) in kontrolniki (npr. ukazni gumbi in besedilna polja) imajo različne lastnosti dogodka, katerim lahko dodate makre ali postopke. Vsaka lastnost dogodka je povezana z določenim dogodkom, na primer klikanjem miške, odpiranjem obrazca ali spreminjanjem podatkov v besedilnem polju. Dogodke je mogoče sprožiti tudi z dejavniki zunaj Accessa, kot so sistemski dogodki ali makri oz. postopki, ki so dodani drugim dogodkom. Zbirka podatkov lahko postane zapletena, če več lastnostim dogodka številnih predmetov dodate veliko makrov ali postopkov, vendar lahko v večini primerov pridobite želene rezultate že z 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

Izdaja aplikacije Access 2010 in novejše izdaje Accessa vključujejo številna nova dejanja makra, s katerimi lahko ustvarjate zmogljivejše makre kot v starejših različicah Accessa. 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 Accessa so bile takšne funkcije na voljo le z uporabo kode 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:

  • Uporabiti vgrajene funkcije ali ustvariti lastne funkcije    Access vključuje š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.

  • Izvesti dejanja na sistemski ravni    Izvedete lahko dejanje RunApp v makru, da zaženete drug program (npr. Microsoft Excel) v Accessu, medtem ko drugih dejanj z makrom zunaj Accessa ni mogoče izvajati. S kodo VBA lahko preverite, ali v računalniku obstaja določena datoteka, uporabite avtomatizacijo ali dinamično izmenjavo podatkov (DDE) za komunikacijo z drugimi programi v sistemu Microsoft Windows, kot je Excel, in prikličete funkcije dinamičnih povezovalnih knjižnicah sistema Windows (DLL).

  • 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 Accessovi datoteki (.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 kliknite puščico navzdol, da se odpre galerija Kontrolniki, in zagotovite, da je izbrana možnost Uporabi čarovnike za kontrolnike.

  3. Na zavihku Načrt 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 ukaznih gumbov, ki so na voljo v Accessu, ali pa 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 postavi ukazni gumb na 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 Gradnja 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 v skupini Zapri kliknite Zapri, da zaprete graditelja makrov. Če vas Access pozove, da shranite spremembe in posodobite lastnost, kliknite Da, da shranite spremembe, ali Ne, da zavrnete spremembe.

  10. Na zavihku Načrt 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.

Accessovi makri predstavljajo vrsto poenostavljenega programskega jezika, v katerem ustvarite kodo tako, da izdelate seznam dejanj, ki naj se izvedejo. 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

Opomba : Graditelj makrov v programu Access 2007 je drugačen od tega na spodnji sliki. Graditelj makrov je bil v programu Access 2007 niz vrstic in stolpcev, ki so navajali različna dejanja makra.

Č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 funkcionalnosti v Accessovo aplikacijo. Kodo VBA lahko razširite s kontrolniki neodvisnih izdelovalcev in tako napišete lastne funkcije in postopke, ki ustrezajo vašim zahtevam.

Programiranje s kodo VBA lahko začnete tako, da najprej ustvarite Accessov makro 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 Accessa in pridobite več informacij o posameznih ključnih besedah. Preberite pomoč za razvijalce Accessa in odkrijte nove ukaze, ki vam bodo pomagali izvesti želena programska opravila.

Na vrh strani

Pretvorba makrov v kodo VBA

Z Accessom lahko samodejno pretvorite makre 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.

Opomba : Kodo Visual Basic for Applications (VBA) lahko dodate spletni zbirki podatkov; vendar kode ni mogoče zagnati, ko se zbirka podatkov izvaja v spletnem brskalniku. Če spletna zbirka podatkov vsebuje kodo VBA, morate najprej odpreti spletno zbirko podatkov z Accessom, preden lahko zaženete kodo. Za izvajanje programskih opravil v spletni zbirki podatkov raje uporabite Accessove makre.

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 v skupini Orodja kliknite Pretvarjanje makrov obrazca v Visual Basic ali Pretvarjanje makrov poročila v Visual Basic.

  3. V pogovornem oknu Pretvori makre obrazca ali Pretvori makre poročila izberite, ali naj Access doda kodo za obravnavanje napak funkcija, 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 spremeni tudi lastnosti dogodka obrazca ali poročila tako, da te 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 listu z lastnostmi na zavihku Dogodek kliknite katero koli polje z lastnostmi, v katerem je prikazana [Dogodkovna procedura], nato pa kliknite gumb za graditev 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 odpre urejevalnik za Visual Basic in prikaže postopek dogodka 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 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.

Na vrh strani

Razširite svoja znanja
Oglejte si izobraževanje
Prvi dobite nove funkcije
Pridružite se programu Office Insider

Vam je bila informacija v pomoč?

Zahvaljujemo se vam za povratne informacije.

Zahvaljujemo se vam za povratne informacije. Videti je, da bi vam prišla prav pomoč enega od naših Officeovih agentov za podporo.

×