Uvod u programiranje u programu Access

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 nalaze smjernice koje će vas uputiti na alate za programiranje u programu Access.

Sadržaj članka

Što je programiranje?

Trebam li koristiti makronaredbe ili VBA kod?

Izvođenje uobičajenih zadataka programiranja pomoću čarobnjaka za naredbeni gumb

Makronaredbe

VBA kod

Pretvaranje makronaredbi u VBA kod

Što je programiranje?

U programu Access programiranje je proces dodavanja funkcija u bazu podataka putem makronaredbi tog programa ili koda programa Visual Basic for Applications (VBA). Primjerice, pretpostavimo da ste stvorili obrazac i izvješće. Na obrazac želite dodati naredbeni gumb koji će, kad ga se klikne, otvoriti izvješće. U tom je slučaju programiranje proces stvaranja makronaredbe ili VBA procedure te postavljanje svojstva događaja OnClick za naredbeni gumb na način da klik na naredbeni gumb pokreće makronaredbu ili postupak. Ako je riječ o jednostavnoj operaciji, npr. otvaranju izvješća, čitav postupak možete izvesti pomoću čarobnjaka za naredbeni gumb. No možete ga i isključiti pa sami programirati postupak.

Napomena : U većini se programa sustava Microsoft Office izraz "makronaredba" odnosi na VBA kod. To može zbuniti korisnike programa Access jer se u njemu izraz "makronaredba" odnosi na imenovanu zbirku akcija makronaredbi koje se sastavljaju pomoću sastavljača makronaredbi. Akcije makronaredbi programa Access odnose se samo na podskup naredbi dostupnih u VBA kodu. 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 se u člancima pomoći za Access makronaredbe programa Access zovu makronaredbama. 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 (npr. obrasci i izvješća) i kontrole (npr. naredbeni gumbi i tekstni okviri) sadrže različita svojstva događaja kojima možete priložiti makronaredbe ili procedure. Svako svojstvo događaja povezano je s određenim događajem, npr. klikanjem miša, otvaranjem obrasca ili izmjenom podataka u tekstnom okviru. Događaje mogu aktivirati i čimbenici izvan programa Access, npr. događaj u sustavu odnosno makronaredbe ili procedure priložene drugim događajima. Velik broj dodanih makronaredbi ili procedura u nekoliko svojstava događaja za brojne objekte bazu podataka može učiniti previše kompleksnom. U većini slučajeva, željene rezultate možete postići uz malo programiranja.

Vrh stranice

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

Od izdanja 2010 nadalje Access sadrži brojne nove akcije makronaredbi koje omogućuju sastavljanje složenijih makronaredbi nego u starijim verzijama tog programa. 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 te su značajke bile dostupne samo ako se koristio VBA kod. 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:

  • koristiti ugrađene funkcije ili stvoriti vlastite    Access obuhvaća brojne ugrađene funkcije, npr. funkciju IPmt, koja računa kamate. Uz pomoć tih ugrađenih funkcija možete izvoditi izračune bez stvaranja kompliciranih izraza. VBA kod omogućuje stvaranje vlastitih funkcija radi izračuna koji premašuju mogućnosti izraza ili zamjene kompleksnih izraza. Osim toga, funkcije stvorene u izrazima omogućuju primjenu uobičajene operacije 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.

  • izvesti akcije na razini sustava    U makronaredbi možete izvesti akciju RunApp, kojom se iz programa Access pokreće neki drugi program (npr. Microsoft Excel), no makronaredba ne omogućuje puno dodatnih mogućnosti izvan programa Access. Uz VBA možete provjeriti postoji li datoteka na računalu, komunicirati uz pomoć automatizacije ili DDE protokola s drugim programima koji se temelje na sustavu Microsoft Windows, kao što je Excel, te pozivati funkcije u bibliotekama s dinamičkim povezivanjem 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.

Vrh stranice

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 datoteci programa Access (.accdb) čarobnjak stvara makronaredbu koja je ugrađena 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.

  1. U navigacijskom oknu desnom tipkom miša kliknite obrazac u koji želite dodati naredbeni gumb, a zatim kliknite Prikaz dizajna.

  2. Na kartici Dizajn kliknite strelicu prema dolje da bi se prikazala galerija Kontrole i provjerite je li odabrana mogućnost Koristi čarobnjake za kontrolu.

  3. Na kartici Dizajn u galeriji Kontrole kliknite Gumb.

  4. U rešetci dizajna obrasca kliknite mjesto na koje želite postaviti naredbeni gumb.

    Pokrenut će se čarobnjak za naredbeni gumb.

  5. 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.

  6. 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 vam se prikazao popis svih slika naredbenih gumba koje Access nudi ili kliknite Pregled da biste odabrali sliku pohranjenu na nekom drugom mjestu.

      Kliknite Dalje.

  7. Unesite prepoznatljiv naziv naredbenog gumba. To nije obavezan korak i taj se naziv neće prikazivati na naredbenom gumbu. No dobra je ideja unijeti prepoznatljiv naziv da biste se kasnije jednostavnije mogli referirati na naredbeni gumb (npr. ako postavljate redoslijed kartica kontrola na obrascu). Na taj ćete način naredbene gumbe lakše razlikovati. Ako se, primjerice, naredbenim gumbom zatvara obrazac, možete mu dati naziv cmdClose ili CommandClose.

  8. Kliknite Završi.

    Access će na obrazac postaviti naredbeni gumb.

  9. Ako želite vidjeti što je za vas "programirao" čarobnjak, slijedite sljedeće neobavezne korake:

    1. Ako popis svojstava nije prikazan, pritisnite tipku F4 da biste ga prikazali.

    2. Na popisu svojstava pritisnite karticu Događaj.

    3. U okviru svojstva Prilikom klika kliknite gumb Sastavi Slika gumba .

      Access će pokrenuti sastavljač izraza i prikazati 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 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 ih odbacili.

  10. Na kartici Dizajn u grupi Prikazi kliknite Prikaz, a zatim Prikaz obrasca. Kliknite novi naredbeni gumb da biste provjerili funkcionira li sve prema očekivanjima.

Vrh stranice

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.

Bit će vam razumljivije ako makronaredbe programa Access zamislite kao pojednostavljeni programski jezik u kojem stvarate kod sastavljanjem 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.

Sastavljač makronaredbi u programu Access 2010

Napomena : Imajte na umu da se sastavljač makronaredbi u programu Access 2007 razlikuje od onog na gornjoj ilustraciji. U programu Access 2007 sastavljač makronaredbi sastoji se od niza redaka i stupaca u kojima su navedene različite akcije makronaredbe.

Prikaz sastavljača makronaredbi:

  • Na kartici Stvaranje u grupi Makronaredbe i kod kliknite Makronaredba.

Vrh stranice

VBA kod

Kao i makronaredbe, VBA kod omogućuje automatizaciju i druge funkcije u aplikacijama programa Access. 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 započinjanja s VBA programiranjem jest da najprije sastavite makronaredbu programa Access, a zatim je pretvorite 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 okruženju Visual Basic Editor, kliknite ključne riječi i pritisnite F1 da biste pokrenuli pomoć za razvojne inženjere za Access i saznali više o svakoj ključnoj riječi. Zatim možete proučiti pomoć za razvojne inženjere za Access i otkriti nove naredbe koje će vam pomoći u izvršavanju željenih zadataka programiranja.

Vrh stranice

Pretvaranje makronaredbi u VBA kod

Access možete upotrijebiti da biste makronaredbe pretvorili 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.

Napomena : Kod programa Visual Basic for Applications (VBA) možete dodati u bazu podataka na webu, no ne možete ga pokrenuti dok je baza podataka otvorena u web-pregledniku. Ako baza podataka na webu sadrži VBA kod, prije pokretanja koda potrebno je otvoriti bazu podataka na webu. Da biste izveli zadatke programiranja u bazi podataka na webu, upotrijebite makronaredbe programa Access.

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.

  1. U navigacijskom oknu desnom tipkom miša kliknite obrazac ili izvješće, a zatim kliknite Prikaz dizajna.

  2. Na kartici Dizajn u grupi Alati kliknite Pretvori makronaredbe obrasca u Visual Basic ili Pretvori makronaredbe izvješća u Visual Basic.

  3. U dijaloškom okviru Pretvaranje makronaredbi obrasca ili Pretvaranje makronaredbi izvješća odaberite želite li da Access generiranim funkcijama doda rukovanje pogreškama. 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 će ga stvoriti pa u modul dodati proceduru za svaku makronaredbu povezanu s obrascem ili izvješćem. Access će promijeniti i svojstva događaja obrasca ili izvješća tako da umjesto makronaredbi pokreću nove VBA procedure.

  4. Prikaz i uređivanje VBA koda:

    1. Ako se popis svojstava ne prikazuje dok su obrazac ili izvješće otvoreni u prikazu Dizajn, pritisnite F4 da bi se prikazao.

    2. Na kartici Događaj popisa svojstava kliknite u bilo koji okvir svojstava u kojem se prikazuje [Procedura događaja] pa kliknite gumb za sastavljanje Slika gumba . 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 će otvoriti Visual Basic Editor i prikazati 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

  1. U navigacijskom oknu desnom tipkom miša kliknite makronaredbu koju želite pretvoriti, a zatim kliknite Prikaz dizajna.

  2. Na kartici Dizajn u grupi Alati kliknite Pretvori makronaredbe u Visual Basic.

  3. U dijaloškom okviru Pretvaranje makronaredbi odaberite željene mogućnosti, a zatim kliknite Pretvori.

    Access će pretvoriti makronaredbu i otvoriti Visual Basic Editor.

  4. Prikaz i uređivanje VBA koda:

    1. Ako se u okruženju Visual Basic Editor ne prikazuje okno preglednika projekta, na izborniku Prikaz kliknite Preglednik projekta.

    2. Proširite stablo ispod naziva baze podataka u kojoj radite.

    3. 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.

  1. U okruženju Visual Basic Editor zabilježite naziv funkcije. Primjerice, ako ste pretvorili makronaredbu pod nazivom MyMacro, naziv funkcije bit će MyMacro().

  2. Zatvorite Visual Basic Editor.

  3. U navigacijskom oknu desnom tipkom miša kliknite obrazac ili izvješće s kojim želite povezati funkciju pa kliknite Prikaz dizajna.

  4. Kliknite kontrolu ili odjeljak s kojim želite povezati funkciju.

  5. Ako popis svojstava nije prikazan, pritisnite tipku F4 da biste ga prikazali.

  6. Na kartici Događaj popisa svojstava kliknite okvir svojstva događaja s kojim želite povezati funkciju.

  7. U okvir svojstva unesite znak jednakosti (=) pa naziv funkcije, npr. =MyMacro(). Obavezno uvrstite zagrade.

  8. Spremite obrazac ili izvješće klikom na Spremi na alatnoj traci za brzi pristup.

  9. U navigacijskom oknu dvokliknite obrazac ili izvješće i provjerite izvršava li se kod na odgovarajući način.

Sada ste upoznati s osnovnim koracima dodavanja VBA koda u bazu podataka. U ovom se članku opisuju samo osnovni koraci za početak rada. Dostupan je velik broj odličnih referentnih knjiga i mrežnih resursa koji vam mogu pomoći u izgradnji vještina programiranja.

Vrh stranice

Proširite svoje vještine
Istražite osposobljavanje

Jesu li vam ove informacije bile korisne?

Hvala vam na povratnim informacijama!

Hvala vam na povratnim informacijama! Čini se da bi vam pomoglo kad bismo vas povezali s nekim od naših agenata podrške za Office.

×