Kada kreirate novu bazu podataka, obično počinjete tako što napravite nekoliko objekata baze podataka kao što su tabele, obrasci i izveštaji. Na kraju, stignete do tačke na kojoj dodajete programiranje da biste automatizovali procese i povezali objekte baze podataka. Ovaj članak vam pomaže da se usavršite u alatke za programiranje u programu Access.
Ovaj članak sadrži
Šta je programiranje?
U Access programiranje je proces dodavanja funkcionalnosti u bazu podataka pomoću Access ili Visual Basic for Applications (VBA) koda. Na primer, recimo da kreirate obrazac i izveštaj i želite da dodate komandno dugme u obrazac koje, kada na njega kliknete, otvara neki izveštaj. U ovom slučaju, programiranje je proces kreiranja makroa ili VBA procedure, a zatim postavljanja svojstva događaja komandnog dugmeta OnClick tako da klik na komandno dugme pokreće makro ili proceduru. Za jednostavne operacije, kao što je otvaranje izveštaja, možete da koristite čarobnjak za komandno dugme da obavi sav posao ili možete da isključite čarobnjak i da sami izvršite programiranje.
Napomena: Mnogi Microsoft Office programi koriste termin „makro” za upućivanje na VBA kôd. Ovo može biti zbunjujuće za Access jer se, Access, termin "makro" odnosi na imenovanu kolekciju radnji makroa koje možete da sastavite pomoću alatke "Izrada makroa". Access makroa predstavljaju samo podskup komandi dostupnih u VBA. „Izrada makroa“ pruža strukturisaniji interfejs od programa Visual Basic Editor, što vam omogućava da dodate programiranje kontrolama i objektima bez potrebe učenja VBA koda. Trebalo bi da zapamtite da Access člankima pomoći Access makroi se nazivaju makroima. S druge strane, VBA kôd se naziva VBA, kôd, funkcija ili procedura. VBA kôd se nalazi u modulima klase (koji su deo pojedinačnih obrazaca ili izveštaja i obično sadrže kôd samo za te objekte) i u modulima (koji nisu vezani za određene objekte i obično sadrže „globalni” kôd koji se može koristiti u bazi podataka) .
Objekti (kao što su obrasci i izveštaji) i kontrole (kao što su komandna dugmad i okviri za tekst) imaju različite svojstva događaja na koje možete da priložite makroe ili procedure. Svako svojstvo događaja je povezano sa određenim događajem, kao što je klik tasterom miša, otvaranje obrasca ili menjanje podataka u okviru za tekst. Događaje takođe mogu aktivirati faktori izvan programa Access, kao što su sistemski događaji ili makroi ili procedure koje su povezane sa drugim događajima. Baza podataka može da postane komplikovana ako dodate mnogo makroa ili procedura u nekoliko svojstava događaja mnogih objekata, ali u većini slučajeva, možete da postignete rezultate koje želite tako što ćete koristiti vrlo malo programiranja.
Treba da koristim makroe ili bi trebalo da koristim VBA kôd?
Odluka da koristite makroe, VBA ili oboje prvenstveno zavisi od toga kako planirate da primenite ili distribuirate bazu podataka. Na primer, ako je baza podataka uskladištena na vašem računaru, a vi ste jedini korisnik,i ako koristite VBA kôd, možete odlučiti da koristite VBA za izvršavanje većine zadataka programiranja. Međutim, ako nameravate da delite bazu podataka sa drugim osobama tako što ćete je pronaći na serveru datoteka, trebalo bi da koristite VBA zbog bezbednosti.
Odluku o korišćenju makroa ili VBA koda trebalo bi da zasnujete na dva pitanja: bezbednost i funkcionalnost koju želite. Bezbednost je problem zbog toga što VBA možete koristiti da biste kreirali kôd koji ugrožava bezbednost podataka ili može oštetiti datoteke na vašem računaru. Kada koristite bazu podataka koja je napravio neko drugi, trebalo bi da omogućite VBA kôd samo ako ste sigurni da baza podataka dolazi iz pouzdanog izvora. Prilikom kreiranja baze podataka koju će koristiti drugi ljudi, trebalo bi da izbegavate uključivanje alatki za programiranje koje zahtevaju da korisnik posebno odobri pouzdan status za bazu podataka. Opšte tehnika za izbegavanje potrebe da korisnici daju pouzdanost vašoj bazi podataka opisane su u nastavku ovog odeljka.
Da biste zaštitili svoje baze podataka, trebalo bi da pokušate da koristite makroe kada možete i da koristite VBA programiranje samo za operacije koje ne mogu da se izvrše pomoću radnji makroa. Pored toga, trebalo bi da pokušate da koristite samo radnje makroa koje ne zahtevaju davanje statusa pouzdanosti za funkcionisanje baze podataka. Ograničavanje korišćenja radnji makroa na ovaj način omogućava korisnicima da budu sigurni da baza podataka nema progamiranje koje može da ošteti podatke ili druge datoteke na njihovim računarima.
Razmatranja makroa
Access sadrži mnogo novih radnji makroa koje vam omogućavaju da napravite moćnije makroe nego što možete da napravite pomoću starijih verzija programa Access. Na primer, sada možete da kreirate i koristite globalne privremene promenljive pomoću radnji makroa i možete elegantnije da upravljate greškama koristeći nove radnje makroa za upravljanje greškama. U starijim verzijama Access, ove vrste funkcija su dostupne samo pomoću VBA. Pored toga, možete da ugradite makro direktno u svojstvo događaja objekta ili kontrole. Ugrađeni makro postaje deo objekta ili kontrole i ostaje uz objekat ili kontrolu ako se premesti ili kopira.
Makroi obezbeđuju jednostavan način za upravljanje zadacima programiranja kao što su otvaranje i zatvaranje obrazaca i pokretanje izveštaja. Možete brzo i lako da povezujete objekte baze podataka (obrasce, izveštaje i tako dalje) koje ste napravili zato što postoji mala sintaksa koju morate imati na umu. Argumenti za svaku radnju prikazuju se u alatki „Izrada makroa“.
Pored povećane bezbednosti i jednostavne upotrebe koju pružaju makroi, morate da koristite makroe za izvršavanje sledećih zadataka:
-
Dodelite radnju ili skup radnji ključu. Ovo zahteva kreiranje grupe makroa koja se zove AutoKeys.
-
Izvršite radnju ili niz radnji kada se datoteka prvi put otvori. Ovo zahteva kreiranje makroa po imenu AutoExec.
Napomena: Makro AutoExec se pokreće pre svih drugih makroa ili VBA koda, čak i ako ste odredili početni obrazac u dijalogu Opcije programa Access i pridružili makro ili VBA kôd događaju OnOpen ili OnLoad tog obrasca.
Za više informacija o tome kako da napravite makroe, pogledajte odeljak Razumevanje makroa.
Razmatranja VBA koda
Trebalo bi da koristite VBA programiranje umesto makroa ako želite da uradite nešto od sledećeg:
-
Koristite ugrađene funkcije ili kreirajte sopstvene funkcijeAccess uključuje mnogo ugrađenih funkcija, kao što je funkcija IPmt , koja izračunava uplatu kamate. Možete da koristite ove ugrađene funkcije za izračunavanja bez potrebe kreiranja komplikovanih izraza. Pomoću VBA koda možete da kreirate sopstvene funkcije za izračunavanja koja premašuju mogućnosti izraza ili za zamenu složenih izraza. Pored toga, možete da koristite funkcije koje kreirate u izrazima da biste primenili uobičajenu operaciju na više objekata.
-
Kreiranje objekata ili manipulisanje njima U većini slučajeva, videćete da je najlakše da kreirate i menjate objekat u prikazu dizajna tog objekta. U nekim situacijama, međutim, možda ćete želeti da upravljate definicijom objekta u kodu. Koristeći VBA možete da upravljate svim objektima u bazi podataka, osim same baze podataka.
-
Izvršavanje radnji na nivou sistema Radnju RunApp možete da izvršite u makrou da biste pokrenuli drugi program (kao što je Microsoft Excel) iz programa Access, ali ne možete da koristite makro da biste izvršili mnogo više izvan programa Access. Pomoću VBA koda možete da proverite da li datoteka postoji na računaru, da koristite automatizaciju ili Dynamic Data Exchange (DDE) da biste komunicirali sa drugim Microsoft Windows programima kao što je Excel i da pozivate funkcije Windows biblioteka dinamičkih veza (DLL).
-
Upravljanje zapisima jedan po jedan Možete da koristite VBA za prolazak kroz skup zapisa, jedan po jedan i za izvršavanje operacije na svakom zapisu. Nasuprot tome, makroi rade sa celim skupovima zapisa odjednom.
Koristite čarobnjak komandnog dugmeta da biste izvršavali uobičajene zadatke programiranja
Ako želite da dodate komandno dugme u obrazac, čarobnjak za komandno dugme će vam pomoći da započnete programiranje. Ovaj čarobnjak vam pomaže da kreirate komandno dugme koje izvršava određeni zadatak. U Access (.accdb) datoteke čarobnjak kreira makro koji je ugrađen u svojstvo OnClick komandnog dugmeta. U .mdb ili .adp datoteci čarobnjak kreira VBA kôd jer ugrađeni makroi nisu dostupni u tim formatima datoteka. U svakom slučaju, onda možete da izmenite ili poboljšate makro ili VBA kôd da bi više odgovarao vašim potrebama.
-
U okviru za navigaciju kliknite desnim tasterom miša na obrazac kojem želite da dodate komandno dugme, a zatim izaberite opciju Prikaz dizajna.
-
Na kartici Dizajn obrasca kliknite na strelicu nadole da biste prikazali galeriju Kontrole, a zatim se uverite da je izabrana opcija Koristi čarobnjake za kontrolu.
-
Na kartici Dizajn obrasca , u galeriji Kontrolekliknite na dugme.
-
U koordinatnoj mreži za dizajn obrasca, kliknite na mesto na koje želite da stavite komandno dugme.
Pokreće se čarobnjak za komandno dugme.
-
Na prvoj stranici čarobnjaka, kliknite na svaku kategoriju na listi Kategorije da biste videli koje radnje čarobnjak može da programira kako bi ih komandno dugme izvršilo. Sa liste Radnje izaberite radnju koju želite, a zatim kliknite na dugme Dalje.
-
Izaberite jednu od opcija Tekst ili Slika, u zavisnosti od toga da li želite da tekst ili slika budu prikazani na komandnom dugmetu.
-
Ako želite da tekst bude prikazan, možete da uredite tekst u polju pored opcije Tekst.
-
Ako želite da se prikaže slika, čarobnjak predlaže sliku na listi. Ako želite da izaberete drugu sliku, potvrdite izbor u polju za potvrdu Prikaži sve slike da biste prikazali listu svih slika komandnog dugmeta koje Access obezbeđuje ili kliknite na dugme Potraži da biste izabrali sliku koja je uskladištena na drugom mestu.
Kliknite na dugme Dalje.
-
-
Unesite smisleno ime za komandno dugme. Ovo je opcionalan korak, a ovo ime se ne prikazuje na komandnom dugmetu. Međutim, dobra ideja je da unesete smisleno ime tako da kada treba da uputite kasnije na komandno dugme (na primer ako podešavate redosled kartica za kontrole na obrascu), biće vam mnogo lakše da razlikujete komandnu dugmad. Ako komandno dugme zatvara obrazac, na primer, možete mu dati ime cmdClose ili CommandClose.
-
Kliknite na dugme Završi.
Access postavlja komandno dugme u obrazac.
-
Ako želite da vidite šta je čarobnjak „programirao” za vas, pratite ove opcionalne korake:
-
Ako list sa svojstvima nije prikazan, pritisnite F4 da biste ga prikazali.
-
Izaberite karticu Događaj na listu sa svojstvima.
-
U polju za svojstvo Na klik kliknite na dugme Napravi .
Access pokrene alatku "Izrada makroa" i prikazuje makro koji je kreirao čarobnjak. Ako želite, možete da uredite makro (za više informacija o tome kako da uredite makro, pogledajte odeljak Razumevanje makroa). Kada završite, na kartici Dizajn makroa , u grupi Zatvori kliknite na dugme Zatvori da biste zatvorili alatku "Izrada makroa". Ako Access od vas traži da sačuvate promene i ažurirate svojstvo, kliknite na dugme Da da biste sačuvali promene ili na dugme Ne da biste odbacili promene.
-
-
Na kartici Dizajn obrasca , u grupi Prikazi kliknite na dugme Prikaz, a zatim izaberite stavku Prikaz obrasca. Kliknite na novo komandno dugme da biste potvrdili da radi onako kako ste očekivali.
Razumevanje makroa
Makro je alatka koja vam omogućava da automatizujete zadatke i dodate funkcionalnost u obrasce, izveštaje i kontrole. Na primer, ako dodate komandno dugme u obrazac, možete povezati svojstvo događaja OnClick dugmeta sa makroom koji sadrži komande koje želite da dugme izvršava svaki put kada se klikne na njega.
Korisno je da makroe Access kao pojednostavljeni programski jezik u kojem kreirate kôd pravljenjem liste radnji za izvršavanje. Kada kreirate makro, svaku radnju birate sa padajuće liste, a zatim unosite potrebne informacije za svaku radnju. Makroi vam omogućavaju da dodate funkcije u obrasce, izveštaje i kontrole bez pisanja koda u VBA modulu. Makroi obezbeđuju podskup komandi koje su dostupne u VBA modulu, a većini ljudi je lakše da izrade makro nego da napišu VBA kôd.
Možete da kreirate makro tako što ćete koristiti alatku „Izrada makroa“ koja je prikazana na sledećoj slici.
Da biste prikazali alatku „Izrada makroa“:
-
Na kartici Kreiranje, u grupi Makroi i kôd kliknite na dugme Makro.
Razumevanje VBA koda
Kao i makroi, VBA vam omogućava da dodate automatizaciju i drugu funkcionalnost Access aplikaciji. Možete da proširite VBA pomoću kontrola nezavisnih proizvođača i možete da napišete sopstvene funkcije i procedure za svoje potrebe.
Brz način da počnete sa VBA programiranjem jeste da prvo napravite Access makro, a zatim ga konvertujete u VBA kôd. Uputstva za ovo nalaze se u odeljku Konvertovanje makroa u VBA kôd. Ova opcija kreira novi VBA modul koji izvršava ekvivalentne operacije u makrou. Takođe otvara Visual Basic Editor tako da možete da počnete sa izmenom procedure. Kada radite u programu Visual Basic Editor, možete da kliknete na ključne reči i pritisnete taster F1 da biste pokrenuli Access pomoć za projektante i saznali više o svakoj ključnoj reči. Zatim možete da istražite Access za projektante i otkrijete nove komande koje će vam pomoći da izvršite željene zadatke programiranja.
Konvertovanje makroa u VBA kôd
Možete da koristite Access da biste automatski konvertovali makroe u VBA module ili module klase. Možete da konvertujete makroe koji su vezani za obrazac ili izveštaj, bilo da postoje kao odvojeni objekti ili ugrađeni makroi. Takođe možete da konvertujete opšte makroe koji nisu povezani sa određenim obrascem ili izveštajem.
Konvertovanje makroa koji su vezani za obrazac ili izveštaj
Ovaj proces konvertuje u VBA bilo koje makroe na koje upućuje (ili koji su ugrađeni) obrazac ili izveštaj (ili bilo koja od njegovih kontrola) i dodaje VBA kôd u modul klase obrasca ili izveštaja. Modul klase postaje deo obrasca ili izveštaja i premešta se sa obrascem ili izveštajem ako se on premešta ili kopira.
-
U oknu za navigaciju kliknite desnim tasterom miša na obrazac, a zatim izaberite stavku Prikaz dizajna.
-
Na kartici Dizajn obrasca, u grupi Alatke izaberite stavku Konvertuj makroe obrasca u Visual Basic ili Konvertuj makroe izveštaja u Visual Basic.
-
U dijalogu Konvertovanje makroa obrasca ili Konvertovanje makroa izveštaja izaberite da li želite Access dodate kôd za rukovanje greškama u funkcije koje generiše. Isto tako, ako imate komentare u makroima, izaberite da li želite da oni budu uključeni kao komentaru u funkcijama. Kliknite na Konvertuj da biste nastavili.
Ako ne postoji modul klase za obrazac ili izveštaj, Access ga kreira i dodaje proceduru u modul za svaki makro koji je povezan sa obrascem ili izveštajem. Access menja svojstva događaja obrasca ili izveštaja tako da pokreću nove VBA procedure umesto makroa.
-
Da biste prikazali i uredili VBA kôd:
-
Dok je obrazac ili izveštaj još uvek otvoren u prikazu dizajna, ako list sa svojstvima nije prikazan, pritisnite taster F4 da biste ga prikazali.
-
Na kartici Događaj lista sa svojstvima kliknite u bilo koje polje za svojstvo koje prikazuje [Procedura događaja], a zatim kliknite na dugme "Napravi" . Da biste prikazali svojstva događaja za određenu kontrolu, kliknite na kontrolu da biste je izabrali. Da biste prikazali svojstva događaja za ceo obrazac ili izveštaj, izaberite Oblik ili Izveštaj sa padajuće liste na vrhu lista sa svojstvima.
Access otvara Visual Basic Editor i prikazuje proceduru događaja u modulu klase. Možete da se pomerite nagore ili nadole da biste prikazali druge procedure koje su u istom modulu klase.
-
Konvertovanje globalnih makroa
-
U oknu za navigaciju kliknite desnim tasterom miša na makro koji želite da konvertujete, a zatim izaberite stavku Prikaz dizajna.
-
Na kartici Dizajn makroa , u grupi Alatke izaberite stavku Konvertuj makroe u Visual Basic.
-
U dijalogu Konvertovanje makroa izaberite opcije koje želite, a zatim kliknite na dugme Konvertuj.
Access konvertuje makro i otvara Visual Basic Editor.
-
Da biste prikazali i uredili VBA kôd:
-
U programu Visual Basic Editor, ako okno „Istraživač projekta“ nije prikazano, u meniju Prikaz izaberite stavku Istraživač projekta.
-
Proširite stablo ispod imena baze podataka u kojoj radite.
-
U okviru Moduli kliknite dvaput na modul Konvertovani makro – ime makroa.
Visual Basic Editor otvara modul.
-
Prilaganje VBA funkcije svojstvu događaja
Kada konvertujete globalni makro u VBA, VBA kôd se stavlja u standardni modul. Za razliku od modula klase, standardni modul nije deo obrasca ili izveštaja. Verovatno ćete želeti da dodelite funkciju sa svojstvom događaja u obrazac, izveštaj ili kontrolu tako da se kôd pokreće tačno kada i gde želite. Da biste to uradili, možete da kopirate VBA kôd u modul klase, a zatim da ga povežete sa svojstvom događaja ili možete da napravite poseban poziv iz svojstva događaja u standardni modul pomoću sledeće procedure.
-
U programu Visual Basic Editor zabeležite ime funkcije. Na primer, ako ste konvertovali makro koji se zove MojMakro, ime funkcije će biti MojMakro().
-
Zatvorite Visual Basic Editor.
-
U oknu za navigaciju kliknite desnim tasterom miša na obrazac ili izveštaj sa kojim želite da povežete funkciju, a zatim izaberite stavku Prikaz dizajna.
-
Kliknite na kontrolu ili odeljak sa kojim želite da povežete funkciju.
-
Ako list sa svojstvima nije prikazan, pritisnite F4 da biste ga prikazali.
-
Na kartici Događaj lista sa svojstvima kliknite na polje za svojstvo događaja sa kojim želite da povežete funkciju.
-
U polju za svojstvo otkucajte znak jednakosti (=), a zatim ime funkcije – na primer, =MojMakro(). Obavezno stavite zagrade.
-
Sačuvajte obrazac ili izveštaj tako što ćete kliknuti na Sačuvaj na priručnoj traci.
-
U oknu za navigaciju kliknite dvaput na obrazac ili izveštaj i testirajte ga da biste videli da li kôd radi kako treba.
Sada znate osnovne korake za dodavanje VBA koda u bazu podataka. Ovaj članak opisuje samo osnove prvih koraka; postoji mnogo sjajnih uputstava i resursa na mreži koja mogu da vam pomognu da izgradite veštine programiranja.
Takođe pogledajte
Pravljenje makroa korisničkog interfejsa (UI)
Pokretanje Access makroa pomoću tasterske prečice
Automatizovanje događaja prilikom pokretanja pomoću makroa
Izrada makroa koji se izvršava kad otvorite bazu podataka