U dizajnu tabele, za svako polje imas property 'required'. Dakle, u dizajnu tabele, za zeljena polja postavi property 'Required' na TRUE ili Yes, sta vec ide. To ce da spreci unos nepotpunih rekorda iz bilo koje aplikacija, ali i direktan unos u tabelu.
Upotreba formnog BefopreUpdate eventa pomaze, ali samo kada se podaci unose kroz TU formu. Ako se napravi druga forma, a ne upotrebu provera na BeforeUpdate eventu forme, nece biti nikakve kontrole. I kada posatvis Required=Yest na nivou tabele, treba raditi Form_BeforeUpdate. Zasto? bez Form BeforeUpdate Access ce ti dati poruku na Engleskom o tome da nisi uneo podatak u polje koje je 'required'. Sa beforeUpdate na formi mozes da uradis nesto kao:
Code:
sub Form_beforeUpdate(Cancel as Boolean)
if IsNull(PrvoRequiredPolje) then
cancel=true
msgbox "Polje PrvoRequiredPolje mora biti popunjeno!"
exit sub
endif
if IsNull(DrugoRequiredPolje) then
cancel=true
msgbox "Polje DrugoRequiredPolje mora biti popunjeno!"
exit sub
endif
if IsNull(TreceRequiredPolje) then
cancel=true
msgbox "Polje TreceRequiredPoljebiti popunjeno!"
exit sub
endif
if IsNull(CetvrtoRequiredPolje) then
cancel=true
msgbox "Polje CetvrtoRequiredPolje mora biti popunjeno!"
exit sub
endif
end sub
Naredba Cancel=TRUE kazuje Accessu da NE SACUVA rekord.
Ponovo napominjem, ovo NIJE DOVOLJNA zastita. jedina zastita jeste postaviti property Required na TRUE u dizajnu tabele. Form BeforeUpdate samo pomaze da poruke korisniku budu jasnije (nece se nikada pojaviti Accessova ugradjena poruka o requred polju bez podataka)
Upotreba AftreUpdate evenat za kontrole (text box, combo itd..) NIJE DOBRA IDEJA kada zelite da precite unos nepotpunih rekorda. Zasto? Pa ako ni ne udjete u te kontrole, a snimite rekord, snimice se ono sto je u kontrolama, a toje NULL. Znaci, ne valja poaso. AfterUpdate na nivou kontrole koristi se za neku akciju koja treba da se desi posle dodeljivanja vrednosti toj kontroli. Na primer, u jednom kombo boksu izaberemo nesto, pa onda promenimo row source za drugi kombo boks, na osnovu onoga sto smo izabrali u prvom. na primer, u prvom kombo boksu izaberem vrstu robe, recimo "Pivo", onda se u drugom kombo boksu pojeva imena samo za "Pivo". Moze se upotrebiti i za prepisivanje cene iz tabele Roba u tabelu RacunDetalji, sto ima u temi Magacin - Maloprodaja. (li ce biti uskoro)
:-)