VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 125|回复: 0

[交流] 最近经常出现的与Excel导入莫名出错的解决办法——转

[复制链接]
82_avatar_middle
online_vip 发表于 2018-6-11 11:10:29 | 显示全部楼层 |阅读模式
最近更新过微软windows一些最新补丁的电脑(2017年10月10日开始),凡是使用Excel Driver(驱动)导入或读取Excel文件的VBA代码都会出现以下错误:

基本上都是跟OLEDB有关,导致很多导入Excel的功能(如一些ERP软件,或Excel Access的 VBA相关功能)都会出错:

影响非常多的电脑和软件,在这个月中,我们是接近10多个客户都出现类似的问题:



[ODBC Excel Driver] Reserved error (-5016); there is no message for this error. ERROR [01000] [Microsoft][ODBC Excel Driver]General Warning Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x1644 Thread 0x3e70 DBC 0x4c51fc4 Excel'. ERROR [IM006] [Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed ERROR [01000] [Microsoft][ODBC Excel Driver]General Warning Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x1644 Thread 0x3e70 DBC 0x4c51fc4 Excel'. ERROR [HY000] [Microsoft][ODBC Excel Driver] Reserved error (-5016); there is no message for this error.

Unexpected error from external database driver (1).

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.OleDb.OleDbException: Unexpected error from external database driver (1).

Source Error:


Line 415:        strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1;'";
Line 416:        OleDbConnection conn = new OleDbConnection(strConn);
Line 417:        conn.Open();
Line 418:        DataTable sheetNames = conn.GetOleDbSchemaTable
Line 419:        (System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });




经过查找各种资料,发现是


windows  最近更新了一个补丁KB4041681 导致odbc相关操作全部失效 卸载这个补丁就恢复正常了



发现问题原因是由于微软补丁更新了jet4.0的组件导致,具体补丁列表如下:

Win7 SP1更新微软KB4041678、KB4041681(10月汇总包)补丁;
WindowsServer 2008 R2更新微软KB4041678、KB4041681(10月汇总包)补丁;
Win10更新微软KB4041676、KB4041691(10月汇总包)补丁;
WindowsServer 2016更新微软KB4041691(10月汇总包)补丁;
Win8.1更新微软KB4041693补丁;
WindowsServer 2012 R2更新微软KB4041693补丁。


微软暂时也没有更好的办法,现在的处理方法,最好是卸载




微软官方的说明




上一篇:【GDI+】MFC画图- 消除锯齿
下一篇:list导入,导出excel-转,亲测
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-8-18 07:50

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表