由于微软在2017-10-10左右更新了安全补丁(KB4041678,KB4041681)
从而更新了Microsoft JET Database Engine导致asp、aspnet等无法读取Excel。
出错提示1:Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'
[Microsoft][ODBC Excel 驱动程序] 保留错误 (-5016); 没有这种错误的消息。
出错提示2:导入或者查询excel 提示:外部数据库驱动程序中(1)的意外错误
一直正常,没有修改过配置,只是更新了补丁就查询不了了,所以基本上是补丁问题。
百度到的方法大都是卸载补丁
解决方案:在控制面板>程序>程序和功能>已安装更新中,找到对应的两个补丁,进行卸载。
本人也收到多位asp+excel通用查询系统忠实用户的反馈。
其中一位用户提供了解决方法,本人亲测可用,故予以分享。
实现原理:使用旧版msexcl40dll即可解决。
第一步:下载旧版 msexcl40dll
打补丁后异常的新版:337KB版本4098011
我们得下载最新旧版:332KB版本4098010
或更早版本:比如:4095020
第二步:更名后复制到相同位置
文件名更改msexcl40dll为msexcl40_aiyahadll
复制到C:\Windows\SysWOW64\下
新复制的旧版位置:C:\Windows\SysWOW64\msexcl40_aiyahadll
第三步:修改注册表对应的位置参数
运行-->regedit 进入注册表并搜索msexcl40dll
得到注册表位置:(如图)
双击修改名称win32值为:C:\Windows\SysWOW64\msexcl40_aiyahadll
第四步:Win2008 64位环境下亲测,无需重启已经正常
尝试下这个
select INTO XXXX FROM OPENDATASOURCE('MicrosoftJetOLEDB40',
'Data Source=e:\XXXXxls;Extended Properties=Excel 80')[sheet1$]
看你连的是sqlsever 推荐用sqlserver提供的驱动来连接
String driverName = "commicrosoftsqlserverjdbcSQLServerDriver"; //加载JDBC驱动
String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=name"; //连接
以上就是关于进销存系统导入excel文件时提示[ODBC Microsoft EXCEL 驱动程序] 保留错误(-5016)没有这种错误的消息全部的内容,包括:进销存系统导入excel文件时提示[ODBC Microsoft EXCEL 驱动程序] 保留错误(-5016)没有这种错误的消息、从外部数据库驱动程序错误问题,怎么解决、为什么数据库驱动加载总是失败等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)