PRB:升級至 Access 2000 或 2002 時,出現「無法辨識資料庫格式」錯誤

本文曾發行於 CHT238401
本文已封存。本文係以「現狀」提供且不會再更新。
徵狀
如果您嘗試取得 Access 2000 或 Access 2002 資料庫的存取權,可能會在您的 Visual Basic 程式中收到下列其中一個錯誤。

如果您使用 Microsoft ActiveX Data Objects (ADO) (或 ADO 資料控制項),會收到下列錯誤訊息:
執行階段錯誤 -2147467259 無法辨識資料庫格式 XXX
如果您使用資料存取物件 (DAO) (或 DAO 一般資料控制項),會收到下列錯誤訊息:
執行階段錯誤 3343 無法辨識資料庫格式 XXX
發生的原因
Access 2000 和 Access 2002 都會使用 Jet 4.0 引擎,而該引擎會建立 Jet 4.0 格式資料庫檔案。Jet 3.5 元件無法辨識這種格式。
  • 如果您使用 ADO,則當您嘗試透過 Microsoft.Jet.OLEDB.3.51 提供者連線到 Access 2000 或 2002 資料庫時,會收到錯誤 -2147467259。
  • 如果您使用 DAO,則當您使用 Microsoft DAO 3.51 物件程式庫時,會收到錯誤 3343。
  • DAO 一般資料控制項無法用於 Access 2000 或 2002 資料庫,除非依照本文<解決方案>一節中的指示使用,否則一定會產生錯誤 3343。之所發生這個錯誤,是因為此控制項以 Jet 3.51 為基礎,所以只能辨識 Jet 3.51 (含) 以前版本的資料庫格式。
解決方案
如果要解決這個問題,請使用下列其中一個方法:
  • 安裝 Visual Studio Service Pack 4 (含) 以後版本(如果您使用資料控制項,請將它的 Connect 屬性變更為 Access 2000)。
  • 如果是 ADO (或 ADO 資料控制項),請使用 Microsoft.Jet.OLEDB.4.0 提供者。
  • 如果是 DAO,請在 Microsoft DAO 3.6 物件程式庫中加入參照。
  • 如果您使用一般資料控制項,則必須先開啟 DAO 3.6 資料錄集,然後指派它做為資料控制項的來源,如下所示:
    Option ExplicitPrivate daoDB36 As DatabasePrivate rs As DAO.RecordsetDim sPath As StringPrivate Sub Form_Load()sPath = _"C:\Program Files\Microsoft Office\Office\Samples\Northwind.mdb"Set daoDB36 = DBEngine(0).OpenDatabase(sPath)Set rs = daoDB36.OpenRecordset("Customers")Set Data1.Recordset = rsEnd Sub					
  • 這個問題已在 Visual Basic Service Pack 4 中獲得解決。Connect 屬性已加入新的值 (Access 2000),可讓 DAO 資料控制項開啟 Access 2000 資料庫。
狀況說明
這個問題最早是在 Visual Studio 6.0 Service Pack 4 中獲得修正。如需有關 Visual Studio Service Pack 的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
194022 INFO:Visual Studio 6.0 Service Pack - 詳細內容、取得方式與使用原因

194295 How To Tell That a Visual Studio Service Pack Is Installed
如果要下載最新版的 Visual Studio Service Pack,請造訪下列 Microsoft 網站:
参考
如需有關 Jet 4.0 的詳細資訊,請參閱 Access 2000 文件。

如需有關 ADO 和 DAO 的詳細資訊,請參閱 Visual Basic 文件。

如需詳細資訊,請在 Visual Basic 隨附的 MSDN Library 中查詢「無法辨識資料庫格式」。
error message -2147467259 3343
內容

文章識別碼:238401 - 最後檢閱時間:12/05/2015 15:24:29 - 修訂: 3.1

Microsoft Visual Basic 5.0 Professional Edition, Microsoft Visual Basic 6.0 Professional Edition, Microsoft Visual Basic 5.0 Enterprise Edition, Microsoft Visual Basic 6.0 Enterprise Edition, Microsoft Access 2000 Standard Edition, Microsoft Access 2002 Standard Edition, Microsoft Data Access Components 2.5, Microsoft Data Access Components 2.6

  • kbnosurvey kbarchive kbpubtypekc kbmsccsearch kbctrl kbjet kbprb kbtophit KB238401
意見反應