Npr. definišeš globalnu promenljivu i menjaš joj vrednost na 1 sa dugmetom Sačuvaj. Proveriš joj vrednost pre funkcije BeforeUpdate i ako je 1, zanemariš funkciju, ako je nula daješ upozorenje. Zatim u događaju AfterUpdate vratiš vrednost na 0.
Drugi način neki koriste. Stave formu sa praznim poljima koja nisu vezana ni sa čim. Kada tražiš prikaz podataka, čita se rekordset i podaci se prikazuju u nevezanim poljima. Kada uradiš izmenu pokreneš iz VBA jedan SQL koji zapiše podatke u tabelu. Sa prikazanim podacima možeš da radiš šta hoćeš i ne pamte se u tabeli pošto nisu vezani. Tek kada stisneš dugme Sačuvaj bivaju zapamćeni.
Treći način je da koristiš funkciju koju sam poslao i da ukloniš dugme Sačuvaj.
Četvrti način je da napraviš "pravu" funkciju. Otvori karticu modula, napravi nov i prenesi ovo:
Code:
Function BU(Potvrda As Integer, Forma As Form, Cancel As Integer)
If Potvrda = 1 Then
If MsgBox("Snimam izmene?", vbYesNo, "Snimanje") = vbNo Then
Cancel = True
Forma.Undo
End If
Else
Forma.Requery
End If
End Function
Na dugmetu Sačuvaj, događaj BeforeUpdate postavi ovo:
Code:
=BU(1;Screen.ActiveForm;0)
Na događaju BeforeUpdate forme postavi ovo:
Code:
=BU(1;Screen.ActiveForm;1)
Ima i peti način, samo....