Newsgroup: it.comp.appl.access
Titolo: gestione errori in un DB Access

Ciao a tutti.
Chiedo il vs aiuto per un problema di gestione errori in un Db di Access.
Ho strutturato una maschera in un controllo a schede.
La prima scheda riporta dati che vengono automaticamente riportati dal
sistema anche in una seconda scheda.
Il problema é che tali dati, essendo obbligatori ai fini della generazione
della chiave, se l'utente naviga tra le schede senza prima compilare la
prima scheda il sistema dice che i campi obbligatori non possono essere
nulli. Vorrei poter gestire tale errore in maniera tale che, anzicché dare
tale msg, il sistema dia il msg di premere semplicemente il tasto esc.
Il codice che, a tal fine, ho inserito su corrente della maschera é:
On Error GoTo cicloerrori
cicloerrori:
Select Case Err
Case 3314
MsgBox "Premere esc"
End Select
Ma non funziona!!!! :(
Help me!!!!
Grazie a tutti!
Ecla
 
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 ha scritto nel
messaggio
news:80Z207Z190Z140Y...@usenet.libero.it...

Mettilo su Form_error
MAssimiliano

Non funziona neanche su errore!!!
E' come se non avessi inserito alcuna funzione: continua a dare il msg di
errore relativo all'obbligatorietą dei campi....




Secondo me dovresti gestire l'evento della form "prima di aggiornare"; qui
inserisci le istruzioni che verificano se l'utente ha inserito o meno i dati
obbligatori, in caso contrario utilizzi Cancel = True e non lo fai andare
avanti...
Ciao.
-- 
Sergio MAZZA

 intendi dire che su "prima di aggiornare" devo mettere una struttura
logica del tipo if then?
Puoi sintetizzarmi con un esempio cosa intendi?
Ti ringrazio.
Ciao.



Ciao.
-- 
Sergio MAZZA

 Sergio MAZZA
Ciao Sergio,
ho messo l'istruzione che mi hai consigliato su "errore" della maschera
anzicché su "prima di aggiornare" della stessa perché altrimenti mi avrebbe
dato il msg "C'è da inserire il nome!" ancora prima di aprirla,cioè sul
click del pulsante di accesso alla maschera.
L'istruzione che ho inserito su errore é la seguente:
Private Sub Form_Error(DataErr As Integer, Response As Integer)
If IsNull(Me.cognome) Or IsNull(Me.nome) Or IsNull(Me.data_di_nascita) Or
IsNull(Me.sesso) Or IsNull(Me.luogo_di_nascita) Then
    Me.nome.SetFocus
    Msgbox "C'è da inserire il nome!"
    Msgbox "Premere esc"
    Cancel = True
    GoTo Form_Error_exit
End If
Form_Error_exit:
End Sub
Così facendo, però, mi dà in sequenza il msgbox che sta su errore ed il msg
di sistema che i campi obbligatori non possono essere nulli! Tale ultimo msg
non voglio che compaia perché, se l'utente preme su ok di tale msg e non
preme esc, il sistema, durante l'inserimento,dà il seguente errore:
"Metodo Update o CancelUpdate senza AddNew o Edit".
Vorrei quindi che visualizzasse solo i 2 msg che stanno su "errore" e che
non visualizzasse quello di sistema relativo ai campi null.
Come posso fare, secondo te, per non far comparire tale errore????
Grazie e buon lavoro.



Scrivi il codice nell'evento "prima di aggiornare"; non a caso si chiama così.
Se ti presenta il messaggio di errore in apertura della form, hai una istruzione che scrive qualcosa nei controlli.
Per me l'evento più naturale per controllare la l'input inserito è quello ti ho indicato...
Ciao.
-- 
Sergio MAZZA