我想通過下面的VBA代碼將Excel 2013中的值表上載到Access 2013數據庫中。但是,我不斷收到錯誤。該錯誤發生在cn.execute SQL行上。插入訪問 - 無法更新。數據庫或對象是隻讀的
運行時錯誤 '-2147217911(80040E09)':
無法更新。數據庫或對象是隻讀的。
我已經檢查了文件和Access數據庫的權限,並且它是讀寫訪問權限。我甚至試圖在不同的目錄中創建一個新的Microsoft Access數據庫,但得到相同的錯誤。
另一件讓我難以理解的事情是,我之前重新使用過這段代碼,在其他Excel工作表中沒有任何問題,但是在此工作簿/數據庫中使用它卻不起作用。
Sub uploadToDB()
Dim SQL As String
dbPath = "C:\Users\john.smith\Desktop\database.accdb"
wbName = "C:\Macros\" & ActiveWorkbook.Name & ".xlsm"
wsname = "Staging"
TableName = "dataTable"
Set cn = CreateObject("ADODB.Connection")
scn = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & dbPath
cn.Open scn
'find number of data points to add
row = Sheets(wsname).Range("A1").End(xlDown).row
SQL = "INSERT INTO " & TableName & " ([field1],[field2],[field3],[field4],[field5],[field6],[field7],[field8]) "
SQL = SQL & "SELECT * FROM [Excel 12.0 Macro;HDR=YES;DATABASE=" & wbName & "].[" & wsname & "$A1:H" & row & "]" '" & wsName
cn.Execute SQL
cn.Close
Set cn = Nothing
End Sub
嘗試了一個硬編碼的SQL語句,沒有骰子。同樣的錯誤。不知道我還能做什麼,我甚至在一個單獨的目錄中創建了一個新的Access數據庫。 –