Access中的错误处理,VBa

时间:2009-08-10 07:03:27

标签: vba ms-access error-handling access-vba

我在按钮点击事件中在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 个答案:

答案 0 :(得分:3)

对于VBA中的错误处理,您必须使用On Error语句。在VBA中这样做的最佳实践之一是:

Sub example()

On Error GoTo err_hndl

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

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

请在错误处理程序之前注意“Exit Sub”。它可以防止每次都执行错误处理程序的代码。

答案 1 :(得分:0)

我从您的消息中并不真正理解您如何检测不正确的数据并创建新的ErrorLog表,但在这种情况下,一旦检测到ErrorLog表已创建,您应该使用Transactions来回滚修改