ODBC Excel驱动程序:外部数据库驱动程序出现意外错误

时间:2017-10-12 10:25:00

标签: excel delphi odbc ado delphi-10.1-berlin

自10月10日Windows更新以来,ODBC Excel驱动程序已停止工作。尝试读取文件时出现以下错误:

  

“来自外部数据库驱动程序的错误(1)”

我们使用带有以下连接字符串的ADO连接在Delphi中打开Excel文件:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1";

我可以通过切换到Microsoft.ACE.OLEDB.12.0来实现它,但为了实现这一点,我们所有的客户都必须在他们使用我们软件的所有计算机上安装Microsoft Access数据库引擎可再发行组件。 / p>

有人有其他解决方案或解决方法吗?提前谢谢。

9 个答案:

答案 0 :(得分:3)

在客户端计算机上,我卸载了KB4041681(Windows 7),它附带了最后一个Microsoft Patch。 在我的机器上,我已经卸载了KB4041676(Windows 10)。 之后,Microsoft.Jet.OLEDB.4.0正在运行。

我希望微软很快能解决这个问题。

答案 1 :(得分:1)

有一种解决方案。替换"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\MyExcel.xls; Extended Properties=\"Excel 12.0;HDR = YES; 完成此更改后,您必须在客户计算机上从link安装2007 Office System驱动程序:数据连接组件。

答案 2 :(得分:1)

我对3年来开发的2个应用程序(c#和java)也有同样的问题。 自2017年10月10日起,我无法出口到excel 2003,但2007年有效,无法从excel 2003导入,但2007年也用于导入。

在ArcGIS Desktop 10.5.1中,ESRI(一种最流行的地理处理软件)无法打开Excel和.mdb文件。

Temporally Solution:在Windows 8.1中卸载KB4041693,KB4041687(可能是w10)。

在这两条路径的微软变更日志中都有关于微软喷气机的更新和安全更新的信息。#34; 卸载并重新启动后,所有软件都恢复正常。

这个问题是在2017年10月10日推出的。 在微软论坛上报告了这个问题(kb4041693应该"修复"它但仍然没有工作)。 也许在几个星期内,他们将(正确地)解决这个问题。

答案 3 :(得分:0)

HERE是解决方案......我在另一个论坛找到它并且对我来说很完美... 它将100%工作

如下所述:

https://forums.embarcadero.com/thread.jspa?messageID=902557&tstart=0

https://forum.kanors-emr.org/showthread.php?tid=571&pid=2652#pid2652

KB4041681安装了msexcl40.dll版本4.0.9801.1。

  1. 查找msexcl40.dll的先前版本(4.0.9801.0)

  2. 放在另一个目录中。他们建议应用程序目录,但是因为在下一步中你将修改注册表以指向这个旧版本,它可能会去任何地方。

  3. 更新注册表项HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Jet \ 4.0 \ Engines \ Excel \ win32以指向步骤2中的位置。

答案 4 :(得分:0)

对我来说,它遵循以下步骤:

ps。:我们有一台Windows Server 2008R2

1 - 下载并安装:https://www.microsoft.com/en-us/download/details.aspx?id=23734 2 - 打开.dtsx文件并更改Excel连接。在属性对话框中,单击ConnectionString属性中的三个点并将其更改为Microsoft Excel 2007.这将自动将您的连接字符串更改为: Provider = Microsoft.ACE.OLEDB.12.0; Data Source = {YOURPATH}; Extended Properties =“Excel 12.0 XML; HDR = YES”; 3 - 我们的一些.dtsx文件指向一个配置文件(通常具有.dtsConfig扩展名)。我也改变了这些人指向正确的提供者(几乎复制并粘贴了我从visual studio获得的连接字符串)

在此之后,我再次运行SQL Job并且运行正常。

答案 5 :(得分:0)

如果您正在使用SSIS包,请在Excel源或Excel目标中更改您的Excel表版本2003到2007.由于excel版本,一般会出现此问题。

答案 6 :(得分:0)

我遇到了同样的问题。在Excel目标中更改了Excel 2007。有效。这与更改provider = Microsoft.ACE.OLEDB.12.0。

相同

答案 7 :(得分:0)

卸载这些更新(根据您的操作系统),您的代码将开始正常运行

  • KB4041681 - Windows 7 SP1和Windows Server 2008 R2 SP1
  • KB4041690 -Windows Server 2012
  • KB4041693 - Windows 8.1和Windows Server 2012 R2
  • KB4041678 - 对我来说这就是问题

https://support.microsoft.com/en-in/help/4041678/windows-7-update-kb4041678

答案 8 :(得分:-2)

最新的Microsoft Office更新引入了此问题。目前没有替代解决方案。