Pazite, makroi sami po sebi nisu nista zlo. Zlo je sto se podgreva uverenje da upotrebom makroa i domacice mogu biti programeri. Zlo je i u tome sto se podgreva uverenje da su tempaltes koje MS nudi uz 2007 sve sto je ikom potrebno da bi razvio informacioni sistem bilo koje vrste. Naravno da mnogi u to poveruju, takva je moc propagande i reklame. Odkad je sveta i veka ljudi kupuju vodice za rast kose, pa je tako i sa makroima.
Ja licnio cesto koristim Autoexec makro, nekako mi je funkcionalniji nego izvrsavanje kode u start-up formi. Koristim i makro za Hourglass On/Off, jer mi kao obicnom smrtniku kod pukne bas kad je satic bio ON pa mi treba nekako da vratim kursor. Ima i drugih stvari gde bi makroi bili korisni, zamisljam jedna koji bi mi ispisao ERROR kod kad otvorim novu proceduru, ali su to sve stvari koje koristi developer u radu. Nikako da su deo programa (osim Autoexec za specijane namene).
Koja bi bila specijalna namena AutoExec? Kod mene na poslu podaci uglavnom sede na SQL serveru. Probali smo metod pristupa 'strogo sve kroz stored procedures, korisnik nema pristupa tabelama ni read only' To je udesetostrucilo vreme pisanja koda i za najbezazlenije stvari. Recimo, odrzavate nakakvu malu look-up tabelu. Bez direktnog pristupa tabeli, to je bol najveca na svetu. Sve su formu unbound, pa kad se otvore, ucitas iz SQL sta ti treba. Onda to editujes, pa posaljes serveru, to jest satsavljas SQL string koji onda prosledis nekom pass-thru kveriju, pa se to zivrsi, milina jedna. E, ali ako zelis kontrolu podataka, onda sve obavis pre slanja serveru, da se ne bi bavio serverovim porukama o greskama. A to je dodatna bol. I sve to nekako radi kad se bavis jednim rekordom u jednom momentu. Medjutim, svi znamo da je Access veliki upravo zbog formi i subformi. E toga vise nema ako idete kroz stored procedure. Na stranu sto vam te procedure pise neko drugi, ko ne poznaje Access i mrzi ga i en tice ga se sta korisnicima treba i tako to...
Elem, uvidelo se da to ne ide. Onda je kreiran jedan account na serveru, za koji korisnici ne smeju da znaju, ali mogu da ga koriste. S tim accountom imaju read/write pristup tabelama i Access ponovo moze da radi form/subform stvari, kako i treba. E, ali korisnici ni slucajno ne smeju da znaju za tajni account i ne daj boze password. Onda mi u Autoexec pozovemo proceduru koja poziva jedna rekordset sa servera, a hardkodiran je userid i password. Na taj nacin se prilikom startovanja aplikacije korisnik u stvari loguje na server a da nije ni znao sta mu se desilo. ANravno, aplikacija je MDE tako da korisnici ne mogu prakticno ne vide tabele, prakticno imaju pristup tabelama samo kroz aplikaciju. Eto tu je Autoexec meni korisniji od koda na OnOpen. Zasto? Zato sto se nekad predomislim, pa promenim Start- up formu, da bude neka drug. Ili mi OnOpen treba za nesto drugo, pa mi logovanje samo pravi guzvu. Ako logovanje radi autoexec, ne moram da mislim na logovanje vise, cak i ako promenim Start-up formu.
Isto tako Autoexec verovatno moze da postavi neke settings, da budete sigurni da imate okruzenej kako treba.