JET/ACE在其他版本Excel中打开工作簿

JET/ACE在其他版本Excel中打开工作簿,excel,excel-2010,excel-2013,jet,ms-jet-ace,Excel,Excel 2010,Excel 2013,Jet,Ms Jet Ace,我在一个系统上安装了Office 2010(32位)和Office 2013(64位)。 它们各自运行良好。 后来有一天Office 2013说要安装一些更新,我同意了,让它安装更新。 现在,当我在Excel 2010中执行以下VBA代码时,它会在Excel 2013中打开工作簿,并针对该工作簿而不是已打开的工作簿运行查询 Set conn = New ADODB.Connection conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Sourc

我在一个系统上安装了Office 2010(32位)和Office 2013(64位)。
它们各自运行良好。
后来有一天Office 2013说要安装一些更新,我同意了,让它安装更新。 现在,当我在Excel 2010中执行以下VBA代码时,它会在Excel 2013中打开工作簿,并针对该工作簿而不是已打开的工作簿运行查询

Set conn = New ADODB.Connection
conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties='Excel 12.0;HDR=YES';"
发生了其他事情,例如Excel 2013现在默认打开所有Excel工作簿

我尝试使用“设置关联”将Excel 2010(C:\Program Files(x86)\Microsoft Office\Office14\Excel.EXE)设置为默认值,但Excel 2013仍在打开它们

右键单击文件并选择“使用打开…”。。。选择

C:\ProgramFiles(x86)\Microsoft Office\Office14\EXCEL.EXE

在Excel 2013中打开它

如果我手动运行

C:\ProgramFiles(x86)\Microsoft Office\Office14\EXCEL.EXE

它将打开Excel2010

我必须手动启动Excel 2010并在其中打开文件。 但是,VBA代码在2013年打开了它


如何修复此问题?

在使用它多一点之后,我决定尝试Office 2010修复

启动“程序和功能” 右键单击Office 2010,更改,修复。 需要重新启动,现在一切似乎都很好


我想另一个选择是在Office 2013更新之前进行系统还原。

首先,ADO连接在内存中打开。除非打开对象,否则将启动应用程序。Jet/ACE是一个.dll数据存储文件,它看不到用户程序。其次,为什么要安装两个Office版本,特别是Excel 2010和2013共享相同的文件类型。现在我可以理解使用旧版Excel 2003是为了兼容。@我为各种客户端开发Office应用程序,有些需要Office 2010,有些需要Office 2013。过去我遇到过一些问题,我在Office 2013中开发应用程序,而客户在Office 2010中运行应用程序时遇到问题。通常与参考文献有关。