在同步的OneDrive文件夹中使用Excel工作簿作为ADODB连接的ODBClocking错误
这个问题似乎非常深奥,但却让我头痛不已。
概要
我在同步的OneDrive for Business文件夹中有一个Excel工作簿,我想将其用作ADODB连接的数据源,该连接从工作簿本身的代码中调用。 但是,每当我尝试build立连接时,VBA都会引发错误。 如果文件位于未命名的文件夹中,例如“我的文档”,则不会发生该错误。
我所需要的只是对连接的只读访问。 我可以用不同的方式形成连接string来完成这项工作吗?
错误详情
-2147467259
用于ODBC驱动程序的Microsoft OLE DB提供程序
[Microsoft] [ODBC Excel驱动程序]一般错误无法打开registry项临时(易失性)Ace DSN进程0x17e0线程0x3cd4 DBC 0x920bf1c Excel'。
我尝试了一个不同的连接string,我尝试使其只读(Mode = Read):
cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Mode=Read; _ Data Source=" & ActiveWorkbook.Path & Application.PathSeparator & _ ActiveWorkbook.Name & "; Extended Properties=""Excel 12.0 Macro;HDR=YES"";"
但是我得到一个不同的错误:
-2147467259
Microsoft Access数据库引擎
无法更新。 数据库或对象是只读的。
码
Sub TestExcelADODB() Dim cnx As New ADODB.Connection Set cnx = OpenExcelConnection(ActiveWorkbook.Path, ActiveWorkbook.Name) cn.Close End Sub
错误发生在cn.Open上:
Public Function OpenExcelConnection(Path As String, File As String) _ As ADODB.Connection Dim cn As New ADODB.Connection If cn.State = adStateOpen Then cn.Close cn.ConnectionString = "Driver={Microsoft Excel Driver _ (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" & _ Path & Application.PathSeparator & File cn.Open Set OpenExcelConnection = cn End Function