Обработка ошибок в Access, VBa - PullRequest
1 голос
/ 10 августа 2009

Я импортировал текстовый файл с разделителями табуляции в базе данных Access по событию нажатия кнопки.

Файл импортирован правильно, проблема возникает, если пользователь выбирает текстовый файл другого формата, код импортирует неправильные данные в базу данных и создает новую таблицу ErrorLog.

Как ограничить неправильные данные из таблицы? Как сделать обработку ошибок? Если пользователь выбирает файл, который имеет неправильный формат (а не неправильные данные, которые генерируют ErrorLog), он вызовет MsgBox, сообщая пользователю, что файл, если не в правильном формате.

Private Sub btnXLUpload_Click() 
If (IsNull(Me.txtXLFIle.Value) = False Or Me.txtXLFIle.Value <> "") Then 
     MsgBox "Please Select the Excel File First", vbOKOnly 
Else 
     DoCmd.TransferText acImportDelim, "eBookSpecification", "eBookData", Me.txtXLFIle.Value, True, "" 
     MsgBox "Data has been uploaded in database", vbOKOnly 
End If 
Me.txtXLFIle.Value = "" 
End Sub 

Ответы [ 2 ]

3 голосов
/ 10 августа 2009

Для обработки ошибок в VBA вы должны использовать оператор On Error. Один из лучших способов сделать это в VBA:

Sub example()

On Error GoTo err_hndl

(.....do something....)

Exit Sub
err_hndl:
MsgBox("We got an error!")
End Sub

Обратите внимание на «Выход Sub» прямо перед обработчиком ошибок. Это предотвращает выполнение кода обработчика ошибок каждый раз.

0 голосов
/ 10 августа 2009

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

...