读取Excel时提示外部数据库驱动程序(1)中的意外错误解决方案

2019-11-26 15:39:00
o_0123
转贴
78

在MFC下使用ODBC读取Excel数据库,提示外部数据库驱动程序(1)中的意外错误



问题所在:

Windows安全更新的自动修复安装补丁


解决方案:
1. 在控制面板——卸载——已安装更新,找到并删除以下安全更新:

System Patch
Num
Uninstall Command
Windows 7 、Windows Server 2008 R2
KB4041681
wusa /uninstall /kb:4041681
Windows 8 、Windows Server 2012
KB4041693
wusa /uninstall /kb:4041693
Windows 10 V1607 、 Windows Server 2016
KB4041691
KB4041691 wusa /uninstall /kb:4041691
Windows 10 V1703
KB4041676
KB4041676 wusa /uninstall /kb:4041676

或者以管理员权限运行cmd,并执行wusa /uninstall命令卸载,然后重启即可。


2. 修改注册表(非专业人员慎用)
- 找到老版本的(4.0.9801.0) msexcl40.dll
- 复制到另一个目录(比如:C:\ProgramData\JET_Fix\msexcl40.dll)
- 将HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\Excel\win32的值修改成C:\ProgramData\JET_Fix\msexcl40.dll


3. 安装新的数据库引擎AccessDatabaseEngine
安装Microsoft Access Database Engine 2010 Redistributable 并使用新的provider连接

将连接串 
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\test.xls;Extended Properties=”Excel 8.0”; 
改为 
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\test.xls;Extended Properties=”Excel 8.0”;
    分享