office交流網--QQ交流群號

Access培訓群:792054000         Excel免費交流群群:686050929          Outlook交流群:221378704    

Word交流群:218156588             PPT交流群:324131555

最近經常出現的與Excel導入莫名出錯的解決辦法

2017-10-30 08:26:00
zstmtony
原創
9004

最近更新過微軟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補丁。



微軟暫時也沒有更好的辦法,現在的處理方法,最好是卸載


微軟官方的說明


此更新中的已知問題



癥狀 解決方法
安裝 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 正尋求一種解決方案,并會在即將發布的版本中提供更新。






其它相關資料:



微軟最近更新KB4041681 KB4041678這兩個補丁 導致excel導入出問題。卸載之后就好了。如果在程序上修改 如何修改我是用的 這種導入方式OleDbCommand cmdImport =
微軟最近更新KB4041681 KB4041678這兩個補丁 導致excel導入出問題。 
卸載之后就好了。 
如果在程序上修改 如何修改 

我是用的 這種導入方式 

OleDbCommand cmdImport = new OleDbCommand(sSql, new OleDbConnection(ConnStr));

OleDbDataAdapter adpImport = new OleDbDataAdapter(cmdImport);

DataSet dsImport = new DataSet();
    分享
    北京十一选五基本走势