最近经常出现的与Excel导入莫名出错的解决办法
- 2017-10-30 08:26:00
- zstmtony 原创
- 15735
最近更新过微软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的组件导致,具体补丁列表如下:
微软暂时也没有更好的办法,现在的处理方法,最好是卸载
微软官方的说明
此更新中的已知问题
症状 | 解决方法 |
安装 KB4041681 后,更新包用户在关闭某些应用时可能会看到表明产生应用异常的错误对话。 这个问题会影响到使用 mshtml.dll 加载网站内容的应用。 该问题仅在进程已经关闭的情况下才会发生,不会影响到应用的功能。 | Microsoft 正寻求一种解决方案,并会在即将发布的版本中提供更新。 |
安装此更新后,可能会导致基于 Microsoft JET 数据库引擎(Microsoft Access 2007 和更低版本或非 Microsoft 应用程序)的应用程序无法创建或打开 Microsoft Excel .xls 文件。 错误消息为“外部数据库驱动程序 (1) 中的意外错误。 (Microsoft JET 数据库引擎)。” |
下载并安装 Microsoft Access 数据库引擎 2010 可再发行软件包,然后在 Microsoft Excel 中修改 DB 连接字符串以将 ACE 用作提供程序。 示例: 将 Provider=Microsoft.Jet.OLEDB.4.0 更改为 Provider=Microsoft.ACE.OLEDB.12.0。 Microsoft 正寻求一种解决方案,并会在即将发布的版本中提供更新。 |
其它相关资料:
卸载之后就好了。
如果在程序上修改 如何修改
我是用的 这种导入方式
OleDbCommand cmdImport = new OleDbCommand(sSql, new OleDbConnection(ConnStr)); OleDbDataAdapter adpImport = new OleDbDataAdapter(cmdImport); DataSet dsImport = new DataSet();
- office课程播放地址及课程明细
- Excel Word PPT Access VBA等Office技巧学习平台
- 将( .accdb) 文件格式数据库转换为早期版本(.mdb)的文件格式
- 将早期的数据库文件格式(.mdb)转换为 (.accdb) 文件格式
- KB5002984:配置 Jet Red Database Engine 数据库引擎和访问连接引擎以阻止对远程数据库的访问(remote table)
- Access 365 /Access 2019 数据库中哪些函数功能和属性被沙箱模式阻止(如未启动宏时)
- Access Runtime(运行时)最全的下载(2007 2010 2013 2016 2019 Access 365)
- Activex控件或Dll 在某些电脑无法正常注册的解决办法(regsvr32注册时卡住)
- office使用部分控件时提示“您没有使用该ActiveX控件许可的问题”的解决方法
- RTF文件(富文本格式)的一些解析
- Access树控件(treeview) 64位Office下出现横向滚动条不会自动定位的解决办法
- Access中国树控件 在win10电脑 节点行间距太小的解决办法
- EXCEL 2019 64位版(Office 2019 64位)早就支持64位Treeview 树控件 ListView列表等64位MSCOMMCTL.OCX控件下载
- VBA或VB6调用WebService(直接Post方式)并解析返回的XML
- 早期PB程序连接Sqlserver出现错误
- MMC 不能打开文件C:/Program Files/Microsoft SQL Server/80/Tools/Binn/SQL Server Enterprise Manager.MSC 可能是由于文件不存在,不是一个MMC控制台,或者用后来的MMC版
- sql server连接不了的解决办法
- localhost与127.0.0.1区别
- Roych的浅谈数据库开发系列(Sql Server)
- sqlserver 自动备份对备份目录没有存取权限的解决办法
- 安装Sql server 2005 express 和SQLServer2005 Express版企业管理器 SQLServer2005_SSMSEE
联系人: | 王先生 |
---|---|
Email: | 18449932@qq.com |
QQ: | 18449932 |
微博: | officecn01 |