SSIS Excel连接管理器:仅在选择了错误的Excel版本时可读的文件

时间:2017-10-18 11:28:53

标签: c# excel ssis connection

由于我不得不重新安装我的开发PC,我现在在加载已保存的SSIS项目或在Visual Studio 2012中创建新项目时遇到一些问题。

尝试使用Excel连接创建为97-2003格式的.xls文件时,收到以下错误:

无法检索连接管理器&Excel连接管理器'的表信息。 无法使用连接管理器连接到源' Excel连接管理器'

经过一些实验,如果发现.xlsx文件正常工作,并且在我将ECM设置为MS Excel 2007时可以读取.xls文件的表格。

事实上,我不是唯一一个更新这些程序的人,而且在我的备份笔记本上,他们仍然按照预期的方式使用Excel版本3(97-2003),与文件相同。因此,当我将程序更新到Excel版本4以使其在PC上运行时,它对所有其他程序都无效。

感谢任何帮助解决此问题。

设置信息(与PC和笔记本相同的基本设置):

Win10 x64,Office 2013 x86,SQL Server数据工具2012(x86), 在PC上:还为Office 2010,2007安装了Access数据库引擎

1 个答案:

答案 0 :(得分:0)

此问题是由Windows更新 KB4041678 (仅安全更新)或 KB4041681 (每月汇总)引起的。在我们的案例中,它是KB4041687。由于此更新,我们有许多SSIS软件包失败,一旦实施了以下解决方案,SSIS软件包就会备份并运行。

这些更新的已知问题包括:

"安装此更新可能会导致基于Microsoft JET数据库引擎(Microsoft Access 2007和旧版或非Microsoft应用程序)的应用程序在创建或打开Microsoft Excel .xls文件时失败。错误消息是“外部数据库驱动程序(1)发生意外错误”。 (Microsoft JET数据库引擎)"。"

Microsoft正在制定解决方案,并将在即将发布的版本中提供更新。

推荐的工作是下载并安装" Microsoft Access Database Engine 2010 Redistribute"

根据安装说明("要使用此下载"),安装Access数据库引擎后,您需要从Provider = Microsoft.Jet.OLEDB更新Excel连接管理器ConnectionString提供程序.4.0到Provider = Microsoft.ACE.OLEDB.12.0。

例如,之前

Provider = Microsoft.Jet.OLEDB.4.0 ;数据源= D:\ Scatch \ test.xls;扩展属性=&#34; EXCEL 8.0; HDR = YES&#34 ;; < / p>

Provider = Microsoft.ACE.OLEDB.12.0 ;数据源= D:\ Scatch \ test.xls;扩展属性=&#34; EXCEL 8.0; HDR = YES&#34 ;; < / p>