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

文章翻譯 文章翻譯
文章編號: 238401 - 檢視此文章適用的產品。
本文曾發行於 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 Explicit
    Private daoDB36 As Database
    Private rs As DAO.Recordset
    Dim sPath As String
    
    Private 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 = rs
    End 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 網站:
http://msdn2.microsoft.com/zh-tw/vstudio/aa718353.aspx

?考

如需有關 Jet 4.0 的詳細資訊,請參閱 Access 2000 文件。

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

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

屬性

文章編號: 238401 - 上次校閱: 2006年12月21日 - 版次: 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
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com