Come rilevare qualsiasi errore in Access VBA


0

Ho trovato un tutorial che mi ha mostrato come registrare gli errori in Access VBA, e funziona principalmente ... ma quando si controlla la mia tabella degli errori ci sono circa 40 voci che non hanno un numero di errore registrato né c'è una descrizione. Desidero che l'errore non venga visualizzato per l'utente, ma quando si verifica l'errore, inviami tramite e-mail il nome utente, il nomecomputer, il numero di errore e la descrizione in modo da poterlo aggiornare secondo necessità. Ma senza descrizione e / o numero di errore non posso fare molto.

Questa è la procedura che ho, cosa devo aggiungere / alterare / modificare / aggiornare per essere in grado di catturare gli errori mancanti?

Public Sub Error()
  On Error GoTo errorerrorhandler
  strDescription = Chr(34) & Err.Description & Chr(34)
  strSQL = "INSERT INTO tblErrorLog (ErrDate, CompName, UsrName, ErrNumber, ErrDescription, ErrModule)" _
  & " VALUES(#" & Now() & "#, '" & Environ("computername") _
  & "', '" & CurrentUser & "', " & Err.Number _
  & ", " & strDescription & ", '" & VBE.ActiveCodePane.CodeModule & "')"
  DoCmd.SetWarnings False
  DoCmd.RunSQL strSQL
  DoCmd.SetWarnings True
  Exit Sub

  errorerrorhandler:
  Exit Sub
End Sub

E la procedura sopra mostra i numeri di errore nella mia tabella

6, 2113, 3070

EDIT
Sto usando il sub come un catch-all generale per provare a scrivere errori e posso rimediare una volta ricevuto un avviso. Ad esempio, questo è un sottotitolo che utilizzo per cercare dati da un database e popolare campi in un modulo:

Private Sub PullDataFromDB()
  On Error GoTo errHandler
  Dim rs As DAO.Recordset
  Set rs = CurrentDb.OpenRecordset("SELECT [ASD], [ID], [JN], [SP], [CI], [CM] FROM DBTable1 WHERE [IN] = CSTR(" & Me.[INNum] & ") ")
  Me.[INNum] = rs![ID]
  Me.[SD] = rs![ASD]
  Me.[JN] = rs![JN]
  Me.[SP] = rs![SP]
  Me.[CI] = rs![CI]
  Me.[CM] = rs![CM]
  rs.Close
  Set rs = Nothing
  Exit Sub

  errHandler:
  Error

End Sub

Perché il voto si chiude? @ Almeno lasciami un commento così so cosa non è alla pari?
user2676140

Errori mancanti? Suggerirei di guardare l'API per VBa. Come sembra, per lo più stai chiedendo a qualcuno di fare solo il tuo codice. Su cosa sei bloccato? Se stai chiedendo "dammi ogni errore che c'è nel libro", allora non credo che lo otterrai in questo modo.
ejbyte il

1
Questa domanda è più adatta per StackOverflow. Aggiungi informazioni su come viene chiamato il tuo sub. Chiamarlo Error()come la Error()funzione integrata non è una buona idea.
Andre

@Andre - modificato? per mostrare come chiamo la mia procedura di errore. Viene chiamato da qualsiasi sub quando viene rilevato un errore come errHandler
user2676140

@ejbytes - non sto chiedendo di scrivere il codice per me. Non ero sicuro che nel mio metodo mancasse qualcosa che potesse includere ulteriori errori. Grazie per le informazioni per controllare le API.
user2676140
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.