2012-01-11 3 views
2

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

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

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

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

ответ

3

Вы можете написать текстовый файл, по большей части, в процедуре обработки ошибок для каждой соответствующей процедуры. Возможно, вам придется следить за более серьезными ошибками и делать с ними что-то еще. Вам также, вероятно, придется следить за ошибками 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

+1

+1, вы можете также принять метод, аналогичный этому, чтобы написать ошибки в таблице, а не текстовый файл, если у кого-то есть фоновый доступ для его просмотра. –

+0

@Matt Я думаю, что я бы не использовал само приложение по нескольким причинам, включая обнаружение последнего, что было зарегистрировано до его развалин, и простота отправки текстового файла по электронной почте. – Fionnuala

+0

Просто мысль, если приложение представляет собой многопользовательскую среду, может ли текстовый файл блокироваться одновременно с несколькими пользовательскими ошибками? –

Смежные вопросы