我創建了用於從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