我正在尝试编写一个将 Excel 数据推送到 Access 中的宏。最初我只是简单地编写它以将 Access 作为对象打开并这样做,但是速度非常慢。所以现在我正在编写它以使用 ADO 连接。如果我从我所在的文件以外的任何文件写入,我可以让它工作,但是,因为这是一个功能区按钮并且只使用我所在的文件,我需要它来工作。下面是我的代码。我得到的错误是:
运行时错误 -2147217911 (80040e09) 无法更新。数据库或对象是只读的。
这很愚蠢,因为我没有更新 Excel 文件,但微软就是这样。有什么想法吗?
Transfers2 = ActiveWorkbook.FullName & "].[" & ActiveSheet.Name & "$]"
'C:\temp\ContractToolSetV2.xlsm].[Sheet1$] - this would work, since it is not the file open
Dim con As Object ''Create ADODB Connection
Set con = CreateObject("ADODB.Connection")
SQLcmd = "Insert INTO tblExcelImportCT Select * FROM [Excel 12.0 Xml;Readonly=1;HDR=YES;IMEX=2;ACCDB=YES;DATABASE= " & Transfers2
con.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\nrpi.local\shared_files\ADCC\Commercial Auction Division\BA Support\BAmangment.accdb;"
con.Execute _
SQLcmd