我创建了用于从Excel导入数据到所需表格的代码,通过TransferSheet和builded Query方法。我也试图解决用户在将数据导入数据库(错误的文件格式,追加0行,字段名称与数据库中不同)时可能执行的所有错误,但无法排除错误3059“无法追加所有数据到表“ - 它发生在您尝试导入一些无效数据时。我想为此错误定制一个Msgbox,并停止执行我的查询。这里是我的代码 - 简而言之:访问 - 自定义“无法将所有数据附加到表”?
Private Sub CmdImport_Click()
Dim SQL As String
Dim dbs As DAO.Database
Set dbs = CurrentDb
On Error GoTo ERR1
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12Xml, "NEWTABLE", "<Imported file>", True
SQL = " INSERT INTO MyTable (Field1)" & _
" SELECT DISTINCT" & _
" FROM NEWTABLE"
DoCmd.SetWarnings False
dbs.Execute SQL
DoCmd.RunSQL "DELETE * FROM NEWTABLE"
DoCmd.SetWarnings True
ERR1:
If Err.Number = 3059 Then
MsgBox "This file doesn't have proper data to import. Import canceled !"
Exit Sub
End If
End Sub
此代码弹出,定制MSGBOX访问媒体链接打开内置的窗口,无论DoCmd.SetWarnings False
后。如果我在TransferSheet方法之前移动DoCmd.SetWarnings False
,则会执行导入,并且不会显示Msgbox - 这是错误的。我如何处理这个错误,任何人都知道?
看起来这是一个坚硬的岩石。仍然没有发现任何可能的工作。 – LuckyLuke82