Как отловить любую ошибку в Access VBA

650
user2676140

Я нашел учебник, который показал мне, как регистрировать ошибки в 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 
0
Why the vote to close? @ Least leave me a comment so I know what is not on par? user2676140 7 лет назад 0
Отсутствующие ошибки? Я бы посоветовал взглянуть на API для VBa. Похоже, что вы в основном просите кого-то просто заняться кодированием. На чем конкретно вы застряли? Если вы просите «дать мне все ошибки, которые есть в книге», то я не думаю, что вы получите это так. ejbytes 7 лет назад 0
Этот вопрос лучше подходит для StackOverflow. Добавьте информацию о том, как называется ваш саб. Называть его «Error ()» как встроенная функция «Error ()» не очень хорошая идея. Andre 7 лет назад 1
@ Андре - редактировал? чтобы показать, как я вызываю процедуру «Ошибка». Вызывается из любого сабвуфера, когда появляется ошибка как errHandler user2676140 7 лет назад 0
@ejbytes - не спрашиваю код, который будет написан для меня. Просто не был уверен, что в моем методе не было ничего, что могло бы включать дополнительные ошибки. Спасибо за информацию, чтобы проверить API. user2676140 7 лет назад 0

0 ответов на вопрос