Za pocetak (i za uvek) zaboravi Acessove wizarde. Moras da naucis sam da kontrolise vazne stvari kao sto je brisanje. Znaci, napravi dugme za brisanje invisible za trenutak. Vrati na formu record selector i probaj brisanje na najprostiji nacin, a to je:
1) klikni na record selector bar
2) pritisni Delete taster
To probaj da uradis u dva slucaja, jednom kad direktno otvoris formu, drugi put kad formu otvoris sa uvodne forme. Ako oba rade, onda si siguran ad je brisanje moguce. Ako nece posle otvaranja sa uvodne forme, proveri kako otvaras tvoju formu sa uvodne. da nije kao read only? Proveri DoCmd iskaz.
Ako brisanje radi u oba slucaja, razdvoji kod za brisanje od koda za pomeranje na zeljeni rekord.
1) neka dugme odradi DOCmd.RunCommand accmdDeleteRecord (ili tako nenkako)
2) u forminom Delete eventu pitaj korisnika da potvrdi brisanje, pa ko to ne uradi, Cancel deletion:
Code:
Private Sub Form_Delete(Cancel As Integer)
'Ovo se izvrsi PRVO, bez obzira kako je brisanje inicirano
'Pitaj korisnika da potvrdi brisanje
If MsgBox("Da li zelite da obrisete ovaj zapis?", _
vbExclamation + vbYesNo, "UPOZORENJE!") <> vbYes Then
Cancel = True 'brisanje se ponistava
Else
'ne radi nista, brisanje ide dalje
'Normalno pojavila bi se poruka na Engleskom
'"You are about to delete 1 record(1)....
'Mozes tako da ostavis ili da kodom u BeforeDelConfirm
'prevedes poruku na Srpski. U BeforeDelConfirm imas jos jednu
'sansu da Cancel brisanje
End If
End Sub
Private Sub Form_BeforeDelConfirm(Cancel As Integer, Response As Integer)
'Onda se izvrsi DRUGO
'Samo da sakrijemo poruku na Engleskom:
Response = acDataErrContinue
End Sub
Private Sub Form_AfterDelConfirm(Status As Integer)
'Ovo se izvrsi TRECE (brisanje je vec obavljeno)
'Ovde se pomerimo na poslednji rekord
DoCmd.GoToRecord , , acLast
End Sub
Kako ti se cini?
Evo ti kod za dugme napisan pomocu wizarda, pa malo modifikovan (zbacene ruzne inerazumljive komande DoMenuItem)
Code:
Private Sub cmdDelete_Click()
On Error GoTo Err_cmdDelete_Click
DoCmd.RunCommand acCmdDeleteRecord
Exit_cmdDelete_Click:
Exit Sub
Err_cmdDelete_Click:
MsgBox Err.Description
Resume Exit_cmdDelete_Click
End Sub
:-)