Метод регистрации ошибок и предупреждений в MS Access - PullRequest
2 голосов
/ 11 января 2012

Я - стажер, который создает базу данных для выставления счетов для нового рынка, на котором работает моя компания. Я создал все таблицы и настроил автоматический способ сбора и импорта данных.Тем не менее, метод импорта довольно грубый и не очень элегантный, потому что у меня было всего 2 недели, чтобы поработать над ним.

  1. Я связал таблицы, настроенные в базе данных, с CSVфайлы
  2. У меня есть запросы на добавление, которые добавят новые записи в существующие таблицы.Предупреждения выдаются для дублирующихся записей, но их можно игнорировать.

Моя компания хочет, чтобы каждый день запускала созданную мной программу для загрузки этих отчетов с периодичностью около 30 дней.Затем добавьте все новые записи в базу данных Access.

Поскольку я скоро ухожу, у меня не будет времени проверить эту базу данных, и я хотел бы иметь какой-то метод документирования выдаваемых ошибок и предупреждений;все, от предупреждения о повторяющейся записи до ошибки несоответствия типов или синтаксической ошибки в каком-либо запросе SQL.Возможно ли это, и если да, то, что, по вашему мнению, было бы наиболее эффективным способом сделать это?Может быть, пока мой макрос импорта работает, откройте функцию обработки ошибок?Мы работаем в Access 2007, если это поможет.

1 Ответ

3 голосов
/ 12 января 2012

Вы можете записать в текстовый файл, по большей части, в подпрограмме обработки ошибок для каждой соответствующей процедуры.Возможно, вам придется остерегаться более серьезных ошибок и делать с ними что-то еще.Вам также, вероятно, нужно следить за ошибками DAO, что не совсем то же самое, что и ошибки кода (http://office.microsoft.com/en-us/access-help/HV080753531.aspx).. Могут быть и другие ошибки, которые вы хотите вспомнить самостоятельно:

Err.Raise vbObjectError + 100

.http://msdn.microsoft.com/en-us/library/aa241678(v=vs.60).aspx

LogError (ErrNo & " " & ErrDescr & " " & ErrInfo)

Sub LogError(strError)
Const ForAppending = 8
Dim strPath As String
Dim fs As Object
Dim a As Object

    strPath = GetDataDirectory

    Set fs = CreateObject("Scripting.FileSystemObject")
    If fs.FileExists(strPath & "\ErrorLog.txt") = True Then
        Set a = fs.OpenTextFile(strPath & "\ErrorLog.txt", ForAppending)
    Else
        Set a = fs.createtextfile(strPath & "\ErrorLog.txt")
    End If
    a.WriteLine Date + Time & " " & strError
    a.Close

    Set fs = Nothing
End Sub

Дополнительная информация: http://msdn.microsoft.com/en-us/library/bb221208(v=office.12).aspx

...