ODBC Excel驱动程序:来自外部数据库驱动程序的意外错误

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

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

我们在Delphi中使用带有以下连接string的ADO连接打开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数据库引擎可再发行组件。

有没有人有另一种解决scheme或解决方法? 提前致谢。

在客户机器上,我卸载了最后一个Microsoft Patch附带的KB4041681(Windows 7)。 在我的机器上,我卸载了KB4041676(Windows 10)。 之后,Microsoft.Jet.OLEDB.4.0现在正在工作。

我希望微软很快就能修复这个bug。

有一个解决scheme。 用"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1"replace"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; 此更改后,您将不得不从客户机器上的链接安装2007 Office System Driver:数据连接组件。

我有3年以来由我开发的两个应用程序(c#和java)也有同样的问题。 自2017年10月10日以来,我无法出口到Excel 2003,但2007年工作,并不能从Excel 2003中导入,但2007年也为导入工作。

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

临时解决scheme:卸载Windows 8.1中的KB4041693,KB4041687(可能是w10)。

在这两个path的微软更新日志中说一些关于“microsoft jet更新和安全更新”的内容。 卸载并重新启动后,所有软件都变得正常了。

这个问题是在2017年10月10日引入的。 在微软论坛上,这个问题被报告(kb4041693应该“修复”,但仍然无法正常工作)。 也许在几个星期之内,他们将(正确)处理这个问题。

这是解决scheme…我发现它在另一个论坛,完美地为我工作…它将100%

正如forums.embarcadero.com/thread.jspa?messageID=902557&tstart=0和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. 放置在另一个目录中。 他们build议应用程序目录,但是因为在下一步你会修改registry指向这个旧版本,它可能会去任何地方。

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

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

ps .:我们有一个Windows Server 2008R2

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

在此之后,我再次运行SQL作业,它工作正常。

如果您正在使用SSIS包,那么请在Excel Source或Excel目标中将您的Excel工作表版本2003更改为2007.一般而言,此问题归因于Excel版本。

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

此问题是由Microsoft Office的最新更新引入的。 目前没有其他解决scheme。