從外部資料庫驅動程式產生的非預期的錯誤 (1) @ OleDbConnection.Open

最近因為 Windows Update ,所以造成程式發生以下的錯誤訊息,

從外部資料庫驅動程式產生的非預期的錯誤 (1)。 [ OleDbException.ErrorCode : -2147467259 ]

Unexpected error from external database driver (1). (Microsoft JET Database Engine)

程式只是透過 Provider=Microsoft.Jet.OLEDB.4.0; 去開啟一個 excel 檔而已,如下,


var conn = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Users\\kt\\Documents\\VS Code\\TEST_EXCEL\\aa.xls;Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1;\"");
conn.Open();

但這支程式前陣子用的好好的呀! 為什麼今天卻發生了這樣子的錯誤呢?

於是往 Windows 更新來看,發現有2個更新,如下,

windowsUpdate.pngwindowsUpdate.png

查看一下 kb4041681 , 裡面有更動到 Microsoft JET Database Engine 而我們是有用到它呢!!! 於是將它反安裝後重新開機後,再執行程式就沒問題了。

這個更新似乎將 msexcl40.dll 從 V4.00.9801.0 to v4.00.9801.1 , X64 在 C:\Windows\SysWOW64 目錄。

依 “Unexpected error from external database driver (1). (Microsoft JET Database Engine)” after applying October security updates. 的說明,解法有以下3個,

1.安裝更新後,調整程式,方式如下,

2.移除相關的 KB

3.使用舊的 msexcl40.dll (v4.00.9801.1 以前的版本)

  • 先到可以運作的電腦中 Copy msexcel40.dll 存到某個目錄之中,例如 c:\excel32 。
  • 修改註冊機碼 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\Excel\Win32] 從原本的 C:\Windows\SysWOW64\msexcel40.dll 改成 c:\excel32\msexcel40.dll 。002.png002.png

Windows Update 其中的內容如下,

Security updates to Microsoft Windows Search Component, Windows kernel-mode drivers, Microsoft Graphics Component, Internet Explorer, Windows kernel, Windows Wireless Networking, Microsoft JET Database Engine, and the Windows SMB Server.

目前發現有以下幾個 kb 會影響到,

  • kb4041678 Win 7 / Win 2008
  • kb4041681 Win 7 / Win 2008
  • Kb4042007 Win 2008
  • kb4041691 Win 10 / Win 2016
  • kb4041676 Win 10
  • 如果有一樣的錯誤訊息,應該是因為 windows update ,請檢查最近的 windows update 哦!

參考資料

Excel Microsoft.Jet.OLEDB.4.0 外部数据库驱动程序中(1)的意外错误

Kb4042007 Microsoft Jet 资料库引擎遠端執行程式碼弱點的安全性更新:2017 年 10 月 10 日

“Unexpected error from external database driver (1). (Microsoft JET Database Engine)” after applying October security updates.

作者: 亂馬客

亂馬客 @叡揚資訊 rainmaker_ho@gss.com.tw https://rainmakerho.github.io/ https://www.slideshare.net/rainmakerho

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *