Newsgroup: it.comp.appl.access
Titolo: Avvertimento di cancellazione record

Salve a tutti,
ho una maschera con la quale l'utente gestisce il db.
Con qs maschera è possibile cancellare un record con un pulsnate di comando.
Vorrei che l'utente, una volta premuto il pulsante per cancellare il record,
venisse avvertito tipo:
"ATTENZIONE! Stai cancellando un record! Vuoi continuare?"
e che ci sia la possibilità di ripensarci.
Questo è il codice VBA associato al pulsante:
Private Sub EliminaRecVisVO_Click()
On Error GoTo Err_EliminaRecVisVO_Click
********************
MsgBox "ATTENZIONE! STAI ELIMINANDO UN VO. CLICCANDO SU OK ELIMINERAI
DEFINITIVAMENTE IL VO. VUOI CONTINUARE?"
    DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
    DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
Exit_EliminaRecVisVO_Click:
    Exit Sub
Err_EliminaRecVisVO_Click:
    MsgBox Err.Description
    Resume Exit_EliminaRecVisVO_Click
End Sub
********************
Il problema è che, ovviamente, dopo il MsgBox di avvertimento, anche
premendo sul pulsante di chiusura il record viene cancellato
automaticamente.
Cosa devo aggiungere al codice?
Grazie
Alessandro

 Alessandro
dim risposta as integer,msg as string
msg = "Attenzione!@Stai eleminando definitivamente un VO.@Prosegui con la
cancellazione?"
risposta = msgbox(msg, vbexclamation+vbyesno,"Conferma cancellazione!")
if risposta = vbyes then
  DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
  DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
end if
Antonio

DEFINITIVAMENTE IL VO. VUOI CONTINUARE?"
Prima di tutto devi trasformare questa message box in modo che ti dia la
possibilita'di scegliere tra "si'" e
"no". Cosi' com'e' ti presenta solo "OK"... e se uno non vuole cancellare?
Inoltre devi disabilitare i messaggi di warning, altrimenti quando Access
tentera'effettivamente di cancellare il record ti apparira' ANCHE il
messaggio di warning standard.
Deve quindi diventare
dim iReply as integer
...
iReply=MsgBox "Attenzione, vuoi cancellare?", vbYesNo
if iReply = vbYes then
    docmd.SetWarnings FALSE
    DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
    DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
    docmd.SetWarnings TRUE
End if
...
Ciao,
Angelo.-

...
Avevo dimenticato le parentesi su msgbox...
iReply=MsgBox ("Attenzione, vuoi cancellare?", vbYesNo)


 ha scritto nel messaggio
news:9ddi81$seh$1...@pegasus.tiscalinet.it...







Ok ragazzi dovrei essereci.
Su vostro suggerimento ecco il codice che ha inserito:
Mi fate la cortesia di controllarmelo, pare cmq che funzioni!
Grazie mille
Alessandro
**************************
Private Sub EliminaRecVisVO_Click()
On Error GoTo Err_EliminaRecVisVO_Click
Dim iReply As Integer
iReply = MsgBox("Attenzione, vuoi cancellare?", vbYesNo)
If iReply = vbYes Then
    DoCmd.SetWarnings False
    DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
    DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
    DoCmd.SetWarnings True
End If
Exit_EliminaRecVisVO_Click:
    Exit Sub
Err_EliminaRecVisVO_Click:
    MsgBox Err.Description
    Resume Exit_EliminaRecVisVO_Click
End Sub
***********************************+

 wrote in message
news:aNsK6.8137$9C4.1...@news2.tin.it...

Scusate l'intervento, ma io tendo sempre a risparmiare RAM. Certo, oggi come
oggi non c'è problema di RAM ma io uso ancora lo stile di quando programmavo
in C e avevo poca ram da poter utilizzare...
Beh, concludendo, io il codice lo scriverei in questo modo (non cambia molto
ma mi risparmio la variabile iReply:
 On Error GoTo Err_EliminaRecVisVO_Click
  If MsgBox("Attenzione, vuoi cancellare?", vbYesNo) = vbYes Then
     DoCmd.SetWarnings False
     DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
     DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
     DoCmd.SetWarnings True
 End If
 Exit_EliminaRecVisVO_Click:
     Exit Sub
 Err_EliminaRecVisVO_Click:
     MsgBox Err.Description
     Resume Exit_EliminaRecVisVO_Click
 End Sub
Tutto qui...
Ciao, siete forti!!!
Esteban
Hosted by 
www.seber.it

 wrote in message
tWrK6.2770$f52.1...@news.infostrada.it...

Ciao, ho notato che hai usato il carattere @....se non sbaglio, questo
carattere fa visualizzare cio' che è scritto prima in Grassetto, poi manda
il testo
a capo e dopo il secondo nuovamente il testo a capo.
Questo pero' con Access 97!
Ma con Access 2000 ci hai mai provato?
Sono io che sbaglio oppure è proprio access?
Nel tuo esempio, con A2000 mi da questo messaggio:
Attenzione!@Stai eleminando definitivamente un VO.@Prosegui con la
cancellazione?
E naturalmente non manda nulla a capo e non scrive Attenzione in grassetto!!
C'è per caso un altro modo per farlo?
(non il testo a capo .... uso vbCrLf, ma il Grassetto)
grazie mille
Riccardo


Non so dirtelo, mi spiace. Prova a cercare sull'help mettendo @ come
ricerca. Oppure cerca casellamessaggio
Antonio

Questo
pero' con Access 97!
access 2000 non supporta piů l'utilizzo del
carattere @ nelle msgbox per ottenere la formattazione del testo. nelle
guida in linea del 2000 c'č proprio una pagina dedicata a questo tema, con
l'esempio di una funzione da scrivere per riottenere il comportamento
succitato (naturalmente tutte le msgbox vanno poi richiamate attraverso
questa funzione!).
purtroppo non posso attualmente accedere alla guida del
2000 e quindi non so darti un riferimento piů preciso, ma credo sia
semplice da trovare.
ciao
fabio
--------------------------------
Inviato via 
http://usenet.iol.it
 

fabio
mi correggo!
le informazioni non si trovano nella guida in linea, ma in un
articolo della knowledge base dal titolo
ACC2000: MsgBox Function Ignores
At Sign (@) Formatting
ecco l'indirizzo:
http://support.microsoft.com/support/kb/articles/q242/8/89.asp
