Novu bazu podataka obično započinjete stvaranjem njezinih objekata, kao što su tablice, obrasci i izvješća. S vremenom ćete poželjeti dodati određeno programiranje da biste neke procese automatizirali i povezali objekte baze podataka. U ovom se članku pridonosi orijentiranju na alate za Access.
Sadržaj članka
Što je programiranje?
U Access programiranje je postupak dodavanja funkcija u bazu podataka pomoću makronaredbi Access visual Basic for Applications (VBA) koda. Pretpostavimo, primjerice, da ste stvorili obrazac i izvješće, a u obrazac želite dodati naredbeni gumb koji će, kada ga kliknete, otvoriti izvješće. Programiranje je u ovom slučaju postupak stvaranja makronaredbe ili VBA procedure, a zatim postavljanja svojstva događaja OnClick naredbenog gumba tako da se klikom na naredbeni gumb pokrene makronaredba ili procedura. Za jednostavnu operaciju, kao što je otvaranje izvješća, možete koristiti čarobnjak za naredbene gumbe da biste sve to radili ili možete isključiti čarobnjak i sami izvršiti programiranje.
Napomena: U većini se programa sustava Microsoft Office izraz "makronaredba" odnosi na VBA kod. To može biti zbunjujuće za korisnike Access jer se u programu Access pojam "makronaredba" odnosi na imenovanu zbirku akcija makronaredbi koje možete sastaviti pomoću sastavljača makronaredbi. Access makronaredbe predstavljaju samo podskup naredbi dostupnih u VBA-u. Sastavljač makronaredbi sadrži strukturiranije sučelje od okruženja Visual Basic Editor i omogućuje dodavanje programiranja u kontrole i objekte bez znanja VBA koda. Imajte na umu da Access u člancima pomoći Access makronaredbe nazivaju makronaredbe. Isto tako, VBA kod naziva se VBA, kod , funkcija ili procedura. VBA kod sadržan je u modulima klase (koji su dio pojedinačnih obrazaca ili izvješća i obično sadrže kod samo za te objekte) te u modulima (koji nisu povezani s određenim objektima i obično sadrže "globalni" kod koji se može koristiti u čitavoj bazi podataka).
Objekti (kao što su obrasci i izvješća) i kontrole (kao što su naredbeni gumbi i tekstni okviri) imaju razna svojstva događaja kojima možete priložiti makronaredbe ili postupke. Svako svojstvo događaja povezano je s određenim događajem, kao što je klik mišem, otvaranje obrasca ili izmjena podataka u tekstnom okviru. Događaje mogu aktivirati i čimbenici izvan Access, kao što su događaji sustava ili makronaredbe ili postupci povezani s drugim događajima. Baza podataka može biti složena ako dodate mnogo makronaredbi ili procedura u nekoliko svojstava događaja mnogih objekata, ali u većini slučajeva možete postići željene rezultate pomoću vrlo malo programiranja.
Trebam li koristiti makronaredbe ili VBA kod?
Odluka o tome hoćete li koristiti makronaredbe, VBA ili oboje prvenstveno ovisi o tome na koji način planirate implementirati ili distribuirati bazu podataka. Primjerice, ako je baza podataka pohranjena na računalu koje koristite samo vi i upoznati ste s korištenjem VBA koda, većinu zadataka programiranja možete izvršiti uz VBA. No ako bazu podataka želite zajednički koristiti s drugim korisnicima putem poslužitelja datoteka, iz sigurnosnih razloga nemojte koristiti VBA.
Odluka o tome hoćete li koristiti makronaredbe ili VBA kod ovisi o dvjema stavkama: sigurnosti i željenoj funkcionalnosti. Sigurnost je bitna stavka jer VBA omogućuje stvaranje koda koji može kompromitirati sigurnost podataka ili oštetiti datoteke na računalu. Kada koristite bazu podataka koju je stvorio netko drugi, VBA kod omogućite samo ako smatrate da baza podataka potječe iz pouzdanog izvora. Kada stvorite bazu podataka koju će drugi koristiti, nemojte uvrštavati alate za programiranje koji zahtijevaju da korisnici bazu podataka izričito označe kao pouzdanu. Kasnije u ovom odjeljku navedeni su općeniti načini zaobilaženja uvjeta postavljanja pouzdanosti baze podataka.
Da biste zaštitili bazu podataka, kad god je to moguće, koristite makronaredbe, a VBA programiranje samo za operacije koje nije moguće izvršiti uz pomoć akcija makronaredbi. Osim toga, pokušajte koristiti samo akcije makronaredbi za čije pokretanje bazu podataka nije potrebno označiti kao pouzdanu. Ako akcije makronaredbi na taj način ograničite, korisnici mogu biti sigurni da baza podataka ne sadrži programiranje koje bi oštetilo podatke ili druge datoteke na računalu.
Na što je potrebno obratiti pozornost u vezi s makronaredbama
Access sadrži brojne nove akcije makronaredbi koje omogućuju stvaranje snažnijih makronaredbi nego što ih možete stvoriti pomoću starijih verzija Access. Primjerice, sada uz pomoć akcija makronaredbi možete stvoriti i koristiti globalne privremene varijable te jednostavnije rukovati pogreškama pomoću akcija makronaredbi za rukovanje pogreškama. U starijim verzijama programa Access takve su značajke dostupne samo pomoću VBA-a. Osim toga, makronaredbu možete izravno ugraditi u svojstvo događaja objekta ili kontrole. Ugrađena makronaredba postat će dijelom objekta ili kontrole i ostati uz njih čak i prilikom premještanja ili kopiranja.
Makronaredbe omogućuju jednostavan način rukovanja brojnim zadacima programiranja, kao što su otvaranje i zatvaranje obrazaca te pokretanje izvješća. Budući da je potrebno upamtiti tek osnovnu razinu sintakse, možete brzo i jednostavno povezati stvorene objekte baze podataka (obrasce, izvješća itd.). Argumenti za svaku akciju prikazani su u sastavljaču makronaredbi.
Osim što pružaju veću razinu sigurnosti i jednostavnije su za korištenje, makronaredbe omogućuju i izvođenje sljedećih zadataka:
-
dodjeljivanje akcije ili skupa akcija tipki. Da biste to mogli učiniti, morate stvoriti grupu makronaredbi pod nazivom AutoKeys.
-
izvođenje akcije ili niza akcija po prvom otvaranju baze podataka. Da biste to mogli učiniti, morate stvoriti makronaredbu pod nazivom AutoExec.
Napomena: Makronaredba AutoExec pokreće se prije svih ostalih makronaredbi ili VBA koda, čak i ako ste odredili obrazac pokretanja u dijaloškom okviru Mogućnosti programa Access te priložili makronaredbu ili VBA kod događaju OnOpen ili OnLoad za taj obrazac.
Dodatne informacije i upute za sastavljanje makronaredbi potražite u odjeljku Makronaredbe.
Na što je potrebno obratiti pozornost u vezi s VBA kodom
Upotrijebite VBA programiranje umjesto makronaredbi ako želite nešto od sljedećeg:
-
Koristite ugrađene funkcije ili stvorite vlastite funkcijeAccess obuhvaća brojne ugrađene funkcije, kao što je funkcija IPmt , koja izračunava plaćanje kamata. Te ugrađene funkcije možete koristiti za izračune bez stvaranja složenih izraza. Pomoću VBA koda možete stvoriti i vlastite funkcije za izračune koji premašuju mogućnost izraza ili da biste zamijenili složene izraze. Osim toga, možete koristiti funkcije koje stvarate u izrazima da biste primijenili uobičajenu operaciju na više objekata.
-
stvoriti objekte ili manipulirati njima U većini ćete slučajeva objekt najjednostavnije stvoriti ili izmijeniti u njegovu prikazu dizajna. No u nekim ćete situacijama možda željeti manipulirati definicijom objekta u kodu. Uz pomoć VBA koda možete manipulirati svim objektima u bazi podataka, kao i sa samom bazom podataka.
-
Izvođenje akcija na razini sustava Akciju RunApp možete izvesti u makronaredbi da biste pokrenuli neki drugi program (kao što je Microsoft Excel) iz programa Access, ali makronaredbu ne možete koristiti za izvođenje drugih akcija izvan Access. Pomoću VBA-a možete provjeriti postoji li datoteka na računalu, koristiti automatizaciju ili dinamičku razmjenu podataka (DDE) za komunikaciju s drugim programima utemeljenima na sustavu Microsoft Windows, kao što je Excel, te pozivati funkcije u bibliotekama dinamičkih veza sustava Windows (DLL-ovima).
-
manipulirati pojedinačnim zapisima Uz pomoć VBA koda možete se pomicati po skupovima zapisa, i to zapis po zapis, pa izvesti operaciju na svakom zapisu. S druge strane, makronaredbe funkcioniraju na čitavim skupovima podataka istodobno.
Izvođenje uobičajenih zadataka programiranja pomoću čarobnjaka za naredbeni gumb
Ako u obrazac dodajete naredbeni gumb, čarobnjak za naredbeni gumb može vam pomoći započeti s programiranjem. Čarobnjak pomaže pri stvaranju naredbenog gumba koji izvodi određeni zadatak. U Access (.accdb) čarobnjak stvara makronaredbu ugrađenu u svojstvo OnClick naredbenog gumba. U datoteci .mdb ili .adp čarobnjak stvara VBA kod jer u tim oblicima datoteka nisu dostupne ugrađene makronaredbe. U svakom slučaju, makronaredbu ili VBA kod možete prilagoditi ili poboljšati u skladu sa svojim potrebama.
-
U navigacijskom oknu desnom tipkom miša kliknite obrazac u koji želite dodati naredbeni gumb, a zatim kliknite Prikaz dizajna.
-
Na kartici Dizajn obrasca kliknite strelicu prema dolje da biste prikazali galeriju Kontrole, a zatim provjerite je li odabrana mogućnost Koristi čarobnjake za kontrole.
-
Na kartici Dizajn obrasca u galeriji Kontrole kliknite Gumb.
-
U rešetci dizajna obrasca kliknite mjesto na koje želite postaviti naredbeni gumb.
Pokrenut će se čarobnjak za naredbeni gumb.
-
Na prvoj stranici čarobnjaka na popisu Kategorije kliknite svaku kategoriju da biste vidjeli za koje akcije čarobnjak može programirati naredbeni gumb. Na popisu Akcije odaberite željenu akciju, a zatim kliknite Dalje.
-
Kliknite mogućnost Tekst ili Slika, ovisno o tome želite li da se na naredbenom gumbu prikazuje tekst ili slika.
-
Ako želite da se prikazuje tekst, možete ga urediti u okviru uz mogućnost Tekst.
-
Ako želite da se prikazuje slika, čarobnjak će vam na popisu predložiti jednu. Ako želite odabrati drugu sliku, potvrdite okvir Prikaži sve slike da bi se prikazao popis svih slika naredbenog gumba koje Access ili kliknite Pregledaj da biste odabrali sliku koja je pohranjena negdje drugdje.
Kliknite Dalje.
-
-
Unesite smislen naziv naredbenog gumba. To je neobavezni korak i taj se naziv ne prikazuje na naredbenom gumbu. No dobro je unijeti smisleni naziv da bi, kada se kasnije morate referirati na naredbeni gumb (primjerice, ako postavljate redoslijed kartica za kontrole na obrascu), lakše razlikovati naredbene gumbe. Ako naredbeni gumb zatvori obrazac, možete mu, primjerice, dodijeliti naziv cmdClose ili CommandClose.
-
Kliknite Završi.
Access naredbeni gumb postavlja na obrazac.
-
Ako želite vidjeti što je za vas "programirao" čarobnjak, slijedite sljedeće neobavezne korake:
-
Ako popis svojstava nije prikazan, pritisnite tipku F4 da biste ga prikazali.
-
Na popisu svojstava pritisnite karticu Događaj.
-
U okviru svojstva Prilikom klika kliknite gumb Sastavi .
Access pokreće sastavljač makronaredbi i prikazuje makronaredbu koju je čarobnjak stvorio. Makronaredbu po želji možete urediti (dodatne informacije o uređivanju makronaredbe potražite u odjeljku Makronaredbe). Kada završite, na kartici Dizajn makronaredbe u grupi Zatvaranje kliknite Zatvori da biste zatvorili sastavljač makronaredbi. Ako Access od vas zatraži da spremite promjene i ažurirate svojstvo, kliknite Da da biste spremili promjene ili Ne da biste odbili promjene.
-
-
Na kartici Dizajn obrasca u grupi Prikazi kliknite Prikaz, a zatim Prikaz obrasca. Kliknite novi naredbeni gumb da biste provjerili funkcionira li sve prema očekivanjima.
Makronaredbe
Makronaredba je alat koji omogućava automatizaciju zadataka i dodaje funkcije u vaše obrasce, izvješća i kontrole. Primjerice, ako na obrazac dodate naredbeni gumb, svojstvo događaja OnClick za gumb povezat ćete s makronaredbom koja sadrži naredbe koje će gumb izvesti svaki put kad ga se klikne.
Korisno je razmišljati o Access makronaredbi kao pojednostavljenom programskom jeziku u kojem stvarate kod stvaranjem popisa akcija koje će se izvesti. Prilikom sastavljanja makronaredbe svaku akciju odabirete s padajućeg popisa, a zatim za nju popunjavate potrebne podatke. Makronaredbe omogućuju dodavanje funkcija u obrasce, izvješća i kontrole bez pisanja koda u VBA modulu. Makronaredbe omogućuju podskup naredbi dostupnih u VBA kodu, a i većini je korisnika jednostavnije sastaviti makronaredbu nego napisati VBA kod.
Makronaredbe sastavljate pomoću sastavljača makronaredbi, prikazanog na sljedećoj ilustraciji.
Prikaz sastavljača makronaredbi:
-
Na kartici Stvaranje u grupi Makronaredbe i kod kliknite Makronaredba.
VBA kod
Kao i makronaredbe, VBA vam omogućuje dodavanje automatizacije i drugih funkcija u Access aplikaciju. VBA možete nadograditi pomoću kontrola treće strane, a možete i napisati vlastite funkcije i procedure u skladu sa svojim specifičnim potrebama.
Brz način za početak rada s VBA programiranjem jest prvo stvoriti Access makronaredbu, a zatim je pretvoriti u VBA kod. Upute za to nalaze se u odjeljku Pretvaranje makronaredbi u VBA kod. Ta značajka stvara novi VBA modul koji izvodi ekvivalentne operacije u makronaredbi. Otvorit će se i Visual Basic Editor pa ćete moći mijenjati proceduru. Kada radite u programu Visual Basic Editor, možete kliknuti ključne riječi i pritisnuti F1 da biste pokrenuli pomoć Access za razvojne inženjere i saznali više o svakoj ključnoj riječi. Zatim možete istražiti Access za razvojne inženjere i otkriti nove naredbe koje će vam pomoći u izvođenju željenih zadataka programiranja.
Pretvaranje makronaredbi u VBA kod
Makronaredbe Access pretvoriti u VBA module ili module klase. Pretvorite makronaredbe koje su priložene obrascu ili izvješću, bez obzira na to postoje li kao zasebni objekti ili ugrađene makronaredbe. Pretvoriti možete i globalne makronaredbe koje nisu priložene određenom obrascu ili izvješću.
Pretvaranje makronaredbi priloženih obrascu ili izvješću
Tim se postupkom u VBA pretvaraju sve makronaredbe na koje se referira (ili su ugrađene) u obrascu ili izvješću (ili njihovim kontrolama) te se VBA kod dodaje u modul klase obrasca ili izvješća. Taj modul klase postat će dio obrasca ili izvješća i pratit će ga bez obzira na pomicanje ili kopiranje.
-
U navigacijskom oknu desnom tipkom miša kliknite obrazac ili izvješće, a zatim kliknite Prikaz dizajna.
-
Na kartici Dizajn obrasca u grupi Alati kliknite Pretvori makronaredbe obrasca u Visual Basic ili Pretvori makronaredbe izvješća u Visual Basic.
-
U dijaloškom okviru Pretvaranje makronaredbi obrasca ili Pretvaranje makronaredbi izvješća odaberite želite li da Access kod za rukovanje pogreškama u funkcije koje generira. Ako pak u makronaredbama imate komentare, odaberite želite li ih uključiti kao komentare u funkcijama. Za nastavak kliknite Pretvori.
Ako za obrazac ili izvješće ne postoji modul klase, Access ga stvara i dodaje proceduru modulu za svaku makronaredbu povezanu s obrascem ili izvješćem. Access mijenja i svojstva događaja obrasca ili izvješća tako da umjesto makronaredbi pokreću nove VBA procedure.
-
Prikaz i uređivanje VBA koda:
-
Ako se popis svojstava ne prikazuje dok su obrazac ili izvješće otvoreni u prikazu Dizajn, pritisnite F4 da bi se prikazao.
-
Na kartici Događaj na listu svojstava kliknite bilo koji okvir svojstava koji prikazuje [Procedura događaja], a zatim kliknite gumb sastavi . Da biste vidjeli svojstva događaja za određenu kontrolu, kliknite je i odaberite. Da biste vidjeli svojstva događaja za čitav obrazac ili izvješće, na padajućem popisu pri vrhu popisa svojstava odaberite Obrazac ili Izvješće.
Access otvara Visual Basic Editor i prikazuje proceduru događaja u modulu klase. Pomičite se prema gore ili prema dolje da biste vidjeli sve ostale procedure koje se nalaze u istom modulu klase.
-
Pretvaranje globalnih makronaredbi
-
U navigacijskom oknu desnom tipkom miša kliknite makronaredbu koju želite pretvoriti, a zatim kliknite Prikaz dizajna.
-
Na kartici Dizajn makronaredbe u grupi Alati kliknite Pretvori makronaredbe u Visual Basic.
-
U dijaloškom okviru Pretvaranje makronaredbi odaberite željene mogućnosti, a zatim kliknite Pretvori.
Access pretvara makronaredbu i otvara Visual Basic Editor.
-
Prikaz i uređivanje VBA koda:
-
Ako se u okruženju Visual Basic Editor ne prikazuje okno preglednika projekta, na izborniku Prikaz kliknite Preglednik projekta.
-
Proširite stablo ispod naziva baze podataka u kojoj radite.
-
U odjeljku Moduli dvaput kliknite naziv makronaredbe modula Pretvorena makronaredba.
Visual Basic Editor otvorit će modul.
-
Prilaganja VBA funkcije svojstvu događaja
Kada globalnu makronaredbu pretvorite u VBA, VBA kod postavit će se u standardni modul. Za razliku od modula klase, standardni modul nije dio obrasca ni izvješća. Vjerojatno ćete funkciju željeti povezati sa svojstvom događaja na obrascu, izvješću ili kontroli tako da se kod izvršava točno onda kada to želite. Da biste to učinili, kopirajte VBA kod u modul klase pa ga povežite sa svojstvom događaja ili posebno pozovite standardni modul iz svojstva događaja pomoću sljedeće procedure.
-
U okruženju Visual Basic Editor zabilježite naziv funkcije. Primjerice, ako ste pretvorili makronaredbu pod nazivom MyMacro, naziv funkcije bit će MyMacro().
-
Zatvorite Visual Basic Editor.
-
U navigacijskom oknu desnom tipkom miša kliknite obrazac ili izvješće s kojim želite povezati funkciju pa kliknite Prikaz dizajna.
-
Kliknite kontrolu ili odjeljak s kojim želite povezati funkciju.
-
Ako popis svojstava nije prikazan, pritisnite tipku F4 da biste ga prikazali.
-
Na kartici Događaj popisa svojstava kliknite okvir svojstva događaja s kojim želite povezati funkciju.
-
U okvir svojstva upišite znak jednakosti (=) nakon kojeg slijedi naziv funkcije – na primjer , =MyMacro(). Obavezno uvrstite zagrade.
-
Spremite obrazac ili izvješće klikom na Spremi na alatnoj traci za brzi pristup.
-
U navigacijskom oknu dvokliknite obrazac ili izvješće i provjerite izvršava li se kod na odgovarajući način.
Sada znate osnovne korake za dodavanje VBA koda u bazu podataka. U ovom su članku opisane samo osnovne upute za početak rada. postoji mnogo odličnih referentnih knjiga i mrežnih resursa koji vam mogu pomoći da izradite svoje programske vještine.
Dodatne informacije
Stvaranje makronaredbe za korisničko sučelje (UI)
Pokretanje makronaredbe programa Access pomoću tipkovnog prečaca
Automatizacija procesa koji se odvijaju prilikom pokretanja uz pomoć makronaredbe
Stvaranje makronaredbe koja se pokreće pri otvaranju baze podataka