Private Sub Form_Delete(Cancel As Integer)
Dim msg As Variant
If MsgBox("Sicuro di voler eliminare il record?", vbYesNo +
vbExclamation, "Avviso") = vbYes Then
DoCmd.SetWarnings False
DoCmd.RunCommand acCmdDeleteRecord
DoCmd.SetWarnings True
Else
Cancel = True
End If
End Sub
C'è qualche errore secondo voi?
Quando clicco su Si,mi elimina il record ma "non esce" dalla ruotine e
mi continua a chiedere di eliminare i record successivi,se clicco poi
su No mi entra nel debug segnalandomi la stringa "DoCmd.RunCommand
acCmdDeleteRecord" come errore.
Grazie per le info a tutti
> Private Sub Form_Delete(Cancel As Integer)
Questa viene eseguita quando cancelli un record...
> DoCmd.RunCommand acCmdDeleteRecord
E questa cancella un record. Praticamente, ogni volta che fai per
cancellare un record, lui ti chiede "Cancello??" E se gli dici si...
lui fa partire UN'ALTRA cancellazione.
In pratica: nella Form_Delete e' sufficiente bloccare l'evento (con
cancelevent ) se l'utente NON conferma. Se l'utente conferma, lasci
che l'evento faccia il suo corso e elimini il record (il comando di
eliminazione e' *già partito*)
Private Sub Form_Delete(Cancel As Integer)
If MsgBox("Sicuro di voler eliminare il record?", vbYesNo +
vbExclamation, "Avviso") = vbNo Then
Cancel = True
End If
End Sub
(Tra parentesi, dichiari anche una Variant (msg) che poi non usi...
perche' sprecare memoria?)
cia'
Max
> > DoCmd.RunCommand acCmdDeleteRecord
>
> E questa cancella un record. Praticamente, ogni volta che fai per
> cancellare un record, lui ti chiede "Cancello??" E se gli dici si...
> lui fa partire UN'ALTRA cancellazione.
>
> In pratica: nella Form_Delete e' sufficiente bloccare l'evento (con
> cancelevent ) se l'utente NON conferma. Se l'utente conferma, lasci
> che l'evento faccia il suo corso e elimini il record (il comando di
> eliminazione e' *già partito*)
Ho capito,in pratica è come se avessi duplicato il comando.
> Private Sub Form_Delete(Cancel As Integer)
> If MsgBox("Sicuro di voler eliminare il record?", vbYesNo +
> vbExclamation, "Avviso") = vbNo Then
> Cancel = True
> End If
> End Sub
>
> (Tra parentesi, dichiari anche una Variant (msg) che poi non usi...
> perche' sprecare memoria?)
Hai ragione, era una cosa che avevo dimenticato di togliere in quanto
avevo provato in precedenza un'altra soluzione (che poi nel
funzionamento è uguale) ovvero:
Private Sub Form_Delete(Cancel As Integer)
dim msg as variant
msg = MsgBox("Sicuro di voler eliminare il record?", vbYesNo +
vbExclamation, "Avviso")
if msg = vbNo
Cancel = True
End If
end sub
A proposito...in questo caso la variabile "msg" potevo dichiararla
anche come "string" vero?
Grazie per la spiegazione sei stato molto gentile
msg la potevi dichiarare come integer. le costanti di vb tipo
vbyes,vbno etc sono di questo tipo.
ciao.
--
ignazioc