Intercettare messaggi del DB

di il
2 risposte

Intercettare messaggi del DB

Ciao A a tutti,
sapete come posso intercettare da codice gli errori provenienti dal DB senza usare
l'evento errore della form?
Grazie

2 Risposte

  • Re: Intercettare messaggi del DB

    Devi chiarire la domanda...!

    Mi spiego meglio...
    Se vuoi eseguire una QueryAction(Update/Insert/Delete...) direttamente su JET usando il metodo EXECUTE al posto di RunSQL
    
    DbEngine(0)(0).Execute "predicato SQL",dbFailOnError
    oppure
    
    CurrentDb.Execute "predicato SQL",dbFailOnError
    Puoi usare la gestione errori nella Sub/Function di chiamata... e vedrai che in caso di errore
    hai il corretto riscontro, per altri casi devi esplicitare la tua richiesta.
  • Re: Intercettare messaggi del DB

    Mi spiego meglio ho convertito in codice la macro standard di eliminazione cui avevo modifica solo
    la riga sull'errore:

    Function elimina_prodotto_elimina()
    On Error GoTo elimina_prodotto_elimina_Err

    With CodeContextObject
    On Error Resume Next
    DoCmd.GoToControl Screen.PreviousControl.Name
    Err.Clear
    If (Not .Form.NewRecord) Then
    DoCmd.RunCommand acCmdDeleteRecord
    End If
    If (.Form.NewRecord And Not .Form.Dirty) Then
    Beep
    End If
    If (.Form.NewRecord And .Form.Dirty) Then
    DoCmd.RunCommand acCmdUndo
    End If
    If (.MacroError = 3200) Then
    Beep
    MsgBox "Impossibile eliminare! Prodotto in uso in magazzino", vbOKOnly, ""
    End If
    End With


    elimina_prodotto_elimina_Exit:
    Exit Function

    elimina_prodotto_elimina_Err:
    MsgBox Error$
    Resume elimina_prodotto_elimina_Exit

    End Function

    Il problema è che richimandola da evento click .MacroError non si alimenta e non riesco a beccare l'errore 3200 di integrita referenziale....
Devi accedere o registrarti per scrivere nel forum
2 risposte