您目前已離線,請等候您的網際網路重新連線

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/21/2006 08:58:03 - 修訂: 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
  • kbpubtypekc kbmsccsearch kbctrl kbjet kbprb kbtophit KB238401
意見反應