|
Microsoft Office Access |
|
|
Access 2007 i makro programiranjeNivo:
Verovatno su vam poznate manjkavosti Accessovog makro jezika u prethodnim verzijama ili ste barem upoznati s njima čitajući ove stranice. Da se podsetimo: makro jezik nije imao proceduru za "hvatanje" i tretiranje grešaka, što ga je činilo gotovo neupotrebljivim u okruženju gde je predviđeno da se program kontrolisano izvršava. Drugim rečima, krajni korisnik neće gledati blagonaklono na program koji prijavljuje grešku, a uz prateće opravdanje da "drugačije ne može". U makro jeziku nije bilo moguće koristiti promenljive, što veoma ograničava upotrebu programa - retko koji program ne operiše sa međurezultatima koje treba zapamtiti u određenim intervalima izvršavanja programa. Makro jezik je u novoj verziji unapređen uvođenjem kontrole grešaka, mogućnošću deklarisanja promenljivih i opcijom za ugnežđivanje makroa. Za razliku od prethodnih verzija, sada je moguće grešku presresti i preusmeriti izvršavanje programa na drugu komandu. Za ovu namenu su uvedene tri nove akcije: OnError, SingleStep i ClearMacroError, odnosno uveden je i objekat MacroError. Akcija OnError ima nekoliko argumenata za dalju kontrolu programa u slučaju pojavljivanja greške. Argument Go To određuje naredni korak izvršavanja programa; upotrebom komande Next nalažete izvršavanje naredne naredbe. parametrom Macro Name određujete koji se makro pokreće u slučaju greške, dok parametar Fail potpuno obustavlja izvršavanje makro programa.
Access 2007 donosi promenljive u makro jezik. Za tu namenu je kreiran novi objekat TempVar koji pripada kolekciji TempVars i dozvoljava navođenje određenih akcija. SetTempVar formira novu TempVar promenljivu, dok je akcija RemoveTempVar uklanja. Za uklanjanje svih definisanih promenljivih ovog tipa, upotrebićete akciju RemoveAllTempVars. Dostupnost ovih promenljivih je na mnogo višem nivou od samog makro programa. Njih možete koristiti iz gotovo svih objekata programa: upita, formi ili izveštaja, odnosno možete razmenjivati vrednosti upotrebom VBA jezika. U praktičnoj primeni, upotrebom TempVars promenljivih možete zameniti VBA promenljive globalnog tipa. Osim navedenih izmena u makro programskom delu, uvedene su i izmene u dizajnerskom delu okna za izradu makroa. U toku "pisanja" makro programa, verovatno ste prebacivali kursor između okna za pisanje programa i okna za akcije kako biste videli listu raspoloživih akcija. Ovo više nije potrebno, jer sada sve akcije možete videti u novoj koloni Arguments. Nadalje, u novom, veoma oštrom sistemu zaštite, Access 2007 prikazuje samo one akcije koje se smatraju "bezbednim". Generalno govoreći, bilo koja akcija koja menja podatke, pristupa sistemu datoteka, kreira ili briše objekte, pokreće SQL naredbe ili ima bilo koju drugu interakciju sa pojedinim programima, smatra se nebezbednom. Programerskim rečnikom govoreći: u novom Accessu, program se smatra neispravnim sve dok se ne dokaže suprotno, što je zaista teško objasniti prosečnom korisniku vaše aplikacije. Takav korisnik će vam postaviti neugodno pitanje: zašto onda ne moram da potvrđujem izvršavanje za svaki program koji koristim? Listu svih raspoloživih akcija (skrivenih u bezbednosnom režimu rada) možete videti ako kliknete na dugme Show All Actions na glavnoj traci, pri čemu će Access prikazati sve naredbe u makro programu, uključujući i one nebezbedne, koje će obeležiti ikonom sa znakom uskličnika. Verovatno vas zanima: zašto su načinjene ovakve izmene u makro jeziku, kada je za njega važilo opšte prihvaćeno mišljenje da je prisutan samo zbog kompatibilnosti sa prethodnim verzijama? Razlog za izmene leži upravo u novom sistemu bezbednosti: određene makro naredbe su imune na ovaj zaštitni sistem i omogućuju pokretanje programa čak i kada je bezbednost baze postavljena na najviši nivo. Doduše, malo toga možete "programirati" u ovakvom režimu rada, ali ipak imate mogućnost da u malom broju slučajeva učinite nešto više u pogledu automatizacije aplikacije. Svakako, trebalo bi da koristite VBA kad god je to moguće, jer ima mnoge komparativne prednosti. Makro naredbe su uvek interpretirane, pa se izvršavaju jako sporo u odnosu na pretkompajlirane VBA naredbe. Savetujemo da testirate program na ciljnom računaru i merite vreme izvršavanja svakog dela programa. Kad god neko vreme čekanja pređe oko tri sekunde, korisnik će subjektivno smatrati da je vaš program spor. UZ to, novi Access je i inače mnogo zahtevniji za pokretanje, što dodatno usporava rad. Dakle, za "vožnju u petoj brzini" koristite isključivo VBA. Čak i u pogledu broja komandi (za makro jezik, to je oko 70), ova dva sistema za automatizaciju se ne mogu porediti. Lista svih razlika bi nas odvela u opsežnu diskusiju. Navedimo neke primere nedostataka makro sistema, bez određene težine: interakcija sa drugim programima nije moguća; slanje e-maila takođe; pristup Web sajtovima ili datotekama na disku nije podržan; kontrola drugih programa, čak i uređaja (kao što je bar-kod čitač) upotrebom spoljnih biblioteka ne postoji. Kreiranje dinamičke ADO ili DAO konekcije nije moguće, kao ni upotreba komplikovanih jednačina sa mnogo promenljivih koje su u interakciji sa unosom podataka. Zapravo, poslednji primer je ponekad moguće programirati upotrebom makro jezika, ali tada ovakav program postaje ekstremno komplikovan, pa se vraćamo na početak priče o razlikama: takav program postaje dosadno spor. Dakle, i pored ovih izmena u makro jeziku, savetujemo da koristite VBA jezik kad god je to moguće, jer omogućuje doslovno punu kontrolu programa.
|
|
Vrh stranice Prethodna stranica Naslovna strana Mapa sajta Pretraga |
| AFORIZAM ZA DANAS | OVIH DANA SLUŠAMO... |
| Copyright © Praktikum na Webu, 2000-2010; Valinor Design; sva prava pridržana. |