Access help kaze da se koriste eventi BeforeDelConfirm i AfterDelConfirm. Prilozeni kod se moze cut/paste u bilo koju aplikaciju, i promenite text poruka ako zelite. Jos uvek ce ispod texta biti Yes/No/Cancel. To se moze eliminisati ali zahteva dosta znanja i truda, pa bih radiej ostavio ovako, poruka na srpskom, dugmici yes/No/cancel na engleskom.
Code:
Private Sub Form_BeforeDelConfirm(Cancel As Integer, Response As Integer)
' Ovo iskljucuje standardbnu poruku:
Response = acDataErrContinue
' Ovde pravim moju poruku
If vbYes <> MsgBox("Zelite li da obrisete izabrane rekorde?" _
, vbYesNoCancel + vbDefaultButton3) Then
Cancel = True
'Ovo sam ja dodao, slobodno obrisite ako van se ne dopada ;-)
MsgBox "Odustali ste od brisanja! Pametno."
Else
'Ovde je moja poruka o potvrdi brisanja, uklonite je ako vam se ne dopada:
Cancel = False
MsgBox "Rekordi ce biti obrisani!"
End If
End Sub
Private Sub Form_AfterDelConfirm(Status As Integer)
'Ovde Access javlja sta se u stvari desilo
'(ceo kod u ovoj proceduri moze da se obrise ako vam smeta)
Select Case Status
Case acDeleteOK
MsgBox "Izabrani rekordi su obrisani."
Case acDeleteCancel
'Ovo se desava ako kroz program posaljete Status ovoj proceduri
MsgBox "Korisnik je obustavio brisanje."
'Ovo pise u HELPu da se desava, ali se ne desava
' MsgBox "Programmer je obustavio brisanje."
Case acDeleteUserCancel
'Ovo se desava ako korsnik obustavi brisanje u Form_BeforeDelConfirm
'Ovako je po Help-u ali se mni ova poruka nikad ne pojavi:
MsgBox "Korisnik je obustavio brisanje."
End Select
End Sub
U prethodnom postu je pokazano kako se koristi Delete event. Delete event javlja se za svaki rekord, pa ako odabrete grupu rekorda za brisanje, Delete event ce se javiti svaki put i pitace vas za svaki rekord pojedinacno da li zelite da ga stvarno obrisete. Zatim, setovanje
Code:
Application.SetOption "Confirm Record Changes", 0
je na nivou aplikacije i moze da utice na druge stvari. Ne kazem da ne treba ovako raditi, ali treba biti svestan sta se u stvari desava.
Evenyti BeforedelConfirm i AfterDelConfirm javljaju se jednom tokom operacije brisanja, za sve rekorde odjednom. Prvo je desi OnDelete, pa onda oNDeleteConfirm. Rekordi su vec obrisani na OnDelete. Kad kaazete No ili Cancel na DelConfirm, tada se u stvari odardi Undo. AfterDelConfirm moze da vam vrati poruku kao sto sam stavio u primeru, a ako ne upisete nikakav kod onda taj event tiho prodje bez poruka.
