Я нашел учебник, который показал мне, как регистрировать ошибки в Access VBA, и он работает в основном ... но при проверке моей таблицы ошибок есть примерно 40 записей, в которых нет зарегистрированного номера ошибки и нет описания. Я хочу, чтобы ошибка не отображалась для пользователя, но когда ошибка происходит, напишите мне имя пользователя, имя компьютера, номер ошибки и описание, чтобы я мог обновить при необходимости. Но без описания и / или номера ошибки я ничего не могу сделать.
Это процедура, которая у меня есть, что мне нужно добавить / изменить / редактировать / обновить, чтобы иметь возможность зафиксировать пропущенные ошибки?
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
И приведенная выше процедура отображает номера ошибок в моей таблице
6, 2113, 3070
РЕДАКТИРОВАТЬ
Я использую сабвуфер как общую ловушку, чтобы попытаться написать ошибки, и я могу исправить их, как только получу уведомление. Например, это подраздел, который я использую для поиска данных из базы данных и заполнения полей в форме:
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