Kada kreirate novu bazu podataka, obično počinjete tako što napravite objekte baze podataka kao što su tabele, obrasci i izveštaji. Možda ćete u nekom trenutku morati da dodate programiranje da biste automatizovali procese i povezali te objekte. Ovaj članak predstavlja alatke za programiranje u programu Access.
Ovaj članak sadrži
- Šta je programiranje?
- Da li treba da koristim makroe ili bi trebalo da koristim VBA kôd?
- Koristite čarobnjak komandnog dugmeta da biste izvršavali uobičajene zadatke programiranja
- Razumevanje makroa
- Razumevanje VBA koda
- Konvertovanje makroa u VBA kodu
Šta je programiranje?
U programu Access, programiranje predstavlja dodavanje funkcija u bazu podataka pomoću Access makroa ili Visual Basic for Applications (VBA) koda. Na primer, možete kreirati obrazac i izveštaj, a zatim dodati komandno dugme obrascu koji otvara izveštaj kada ga izaberete. U tom slučaju, kreirajte makro ili VBA proceduru, a zatim postavite svojstvo događaja komandnog OnClick dugmeta tako da 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 biste obavili posao ili možete da isključite čarobnjak i sami ga programirate.
Napomena
Mnogi Microsoft Office programi koriste termin "makro" za upućivanje na VBA kôd. To može da zbuni korisnike programa Access zato što se u programu Access termin "makro" odnosi na imenovani skup radnji makroa koje sastavljate pomoću alatke "Izrada makroa". Radnje Access makroa predstavljaju samo podskup komandi koje su dostupne u programu VBA. "Izrada makroa" pruža strukturisaniji interfejs od programa Visual Basic Editor, tako da možete dodati programiranje kontrolama i objektima bez učenja VBA koda. U člancima pomoći programa Access, Access makroi se nazivaju makroi.
VBA Kôd se zove VBA kôd, funkcija ili procedura.
VBA Kôd se skladišti u module klase, koji su deo pojedinačnih obrazaca ili izveštaja i obično sadrže kôd samo za te objekte, kao i u modulima koji nisu vezani za određene objekte i obično sadrže globalni kôd koji možete da koristite u bazi podataka.
Objekti, kao što su obrasci i izveštaji, i kontrole kao što su komandna dugmad i okviri za tekst, imaju svojstva događaja na koja 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 promena podataka u okviru za tekst. Događaji se takođe mogu aktivirati faktorima izvan programa Access ili makroima ili procedurama koje su povezane sa drugim događajima. Baza podataka može da postane složena ako dodate mnogo makroa ili procedura u mnogo svojstava događaja na mnogim objektima. U većini slučajeva, međutim, možete dobiti željene rezultate tako što ćete koristiti vrlo malo programiranja.
Treba da koristim makroe ili bi trebalo da koristim VBA kôd?
Odluka da koristite makroe VBAili oboje uglavnom zavisi od toga kako planirate da primenite ili distribuirate bazu podataka. Na primer, ako je baza podataka uskladištena na vašem računaru, vi ste jedini korisnik i znate da koristite VBA kôd koji ćete možda odabrati da koristite VBA za većinu zadataka programiranja. Međutim, ako planirate da delite bazu podataka sa drugim osobama sa servera datoteka, trebalo bi da je VBA koristite zbog bezbednosnih razloga.
Odluku o korišćenju makroa ili VBA koda zasnujte na dva pitanja: bezbednost i funkcionalnost koju želite. Bezbednost je važna, jer VBA se može koristiti za kreiranje koda koji ugrožava podatke ili šteti datotekama na računaru. Kada koristite bazu podataka koju je neko drugi kreirao, omogućite VBA kôd samo ako znate da baza podataka dolazi iz pouzdanog izvora. Prilikom kreiranja baze podataka koju će koristiti druge osobe, pokušajte da izbegnete uključivanje alatki za programiranje koje zahtevaju da korisnik izričito veruje bazi podataka. Opšte tehnike za izbegavanje tog zahteva pojaviće se u nastavku ovog odeljka.
Da biste obezbedili bazu podataka, pokušajte da koristite makroe kada možete i VBA koristite ih samo za operacije koje ne mogu da se izvrše pomoću radnji makroa. Takođe, pokušajte da koristite samo radnje makroa koje ne zahtevaju da baza podataka bude pouzdana pre pokretanja. Ograničavanje radnji makroa na ovaj način pomaže korisnicima da se osećaju sigurnim 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 radnji makroa koje vam omogućavaju da izgradite moćnije makroe nego što su to dozvoljavale starije verzije 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 programa Access, ove funkcije su bile dostupne samo u VBA. Možete da ugradite makro direktno u svojstvo događaja objekta ili kontrole. Ugrađeni makro postaje deo objekta ili kontrole i ostaje uz njega ako se objekat ili kontrola premeste ili kopiraju.
Makroi obezbeđuju jednostavan način za upravljanje zadacima programiranja kao što su otvaranje i zatvaranje obrazaca i pokretanje izveštaja. Možete brzo da povezujete objekte baze podataka, kao što su obrasci i izveštaji, koje ste kreirali zato što postoji malo sintakse za pamćenje. 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 po imenu
AutoKeys.Izvršite radnju ili niz radnji kada se datoteka prvi put otvori. Ovo zahteva kreiranje makroa po imenu
AutoExec.Napomena
Makro
AutoExecse pokreće pre svih drugih makroa iliVBAkoda, čak i ako ste odredili početni obrazac u dijalogu "Access opcije " i priložili makro iliVBAkôd tom obrascuOnOpeniliOnLoaddogađaju.
Za više informacija o tome kako da napravite makroe, pogledajte članak Razumevanje makroa.
Razmatranja VBA koda
Koristite VBA ih umesto makroa ako želite da uradite nešto od sledećeg:
- Koristite ugrađene funkcije ili kreirajte sopstvene. Access uključuje mnogo ugrađenih funkcija, kao što je
IPmt, koja izračunava kamatu. Možete da koristite ove funkcije za izračunavanja bez kreiranja komplikovanih izraza. PomoćuVBAprograma , možete da kreirate sopstvene funkcije za izračunavanja koja prevazilaze 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, najlakše je 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, kao i samom bazom podataka. - Izvršavanje radnji na nivou sistema. Možete izvršiti
RunAppradnju u makrou da biste pokrenuli neki drugi program, kao što je Microsoft Excel, iz programa Access, ali ne možete da koristite makro da biste uradili više izvan programa Access. Pomoću uslugeVBA, 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 (DLLs). - Upravljanje zapisima jedan po jedan. Možete da koristite
VBAza 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 () datoteci, čarobnjak će kreirati makro koji je ugrađen u OnClick svojstvo komandnog dugmeta. U .mdb.adp ili 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 proverite da li je izabrana opcija " Koristi čarobnjake za kontrole ".
Na kartici "Dizajn obrasca ", u galeriji "Kontrole " izaberite stavku "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 neku drugu sliku, potvrdite izbor u polju za potvrdu Prikaži sve slike da biste prikazali listu svih slika komandnog dugmeta koje Access pruža ili kliknite na dugme Potraži da biste izabrali sliku koja je uskladištena na drugoj lokaciji. Kliknite na dugme Dalje.
Unesite smisleno ime za komandno dugme. Ovaj korak je opcionalan i 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 kada 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
cmdClosedati ime iliCommandClose.Kliknite na dugme Završi. Access će postaviti komandno dugme u obrascu.
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 "On Click " kliknite na dugme "Napravi ".
Access pokreće alatku „Izrada makroa“ i prikazuje makro koji je kreirao čarobnjak. Ako želite, možete da uredite makro. Više informacija potražite u članku "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 Da da ih sačuvate ili na Ne da odbacite promene.
Na kartici " Dizajn obrasca ", u grupi "Prikazi " izaberite karticu "Prikaz", a zatim izaberite karticu "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 da povežete svojstvo događaja dugmeta OnClick sa makroom koji sadrži komande koje želite da dugme izvršava svaki put kada je izabrano.
Korisno je da Access makroe posmatrate kao pojednostavljeni programski jezik u kojem kreirate kôd tako što pravite listu 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 modulu VBA . Makroi obezbeđuju podskup komandi koje su dostupne u programu VBA, 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
Poput makroa, VBA omogućava vam da dodate automatizaciju i ostale funkcije Access aplikacije. Možete da proširite VBA pomoću kontrola nezavisnih proizvođača i možete da napišete sopstvene funkcije i procedure za određene potrebe.
Brz način da počnete sa radom VBA je da prvo napravite Access makro, a zatim da ga konvertujete u VBA kôd. Uputstva za ovo uključena su u članku 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 pritisnite 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 pomoć za projektante i otkrijte nove komande da biste lakše izvršili ž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 se konvertuje u VBA sve makroe na koje upućuje ili koji su ugrađeni u obrazac ili izveštaj ili bilo koju od njegovih kontrola i dodaje kôd VBA 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 " Konvertuj makroe obrasca " ili "Konvertuj makroe izveštaja " izaberite da li želite da Access doda kôd za upravljanje greškom u funkcije koje generiše. Ako makroi uključuju komentare, izaberite i da li želite da ti komentari budu uključeni u funkcije. 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. Acess menja svojstva događaja obrasca ili izveštaja tako da ona pokreću nove
VBAprocedure umesto makroa.Da biste prikazali i uredili kôd
VBA: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 na bilo koje polje za svojstvo koje se prikazuje
[Event Procedure], 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 kôd
VBA:- 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
Converted Macro-<macro name>modul. 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 sa imenom
MyMacro, ime funkcije će bitiMyMacro(). - 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,=MyMacro(). 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. Mnogi odlični uputnici i resursi na mreži mogu vam pomoći 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