在同步的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