這篇文章中的信息適用于: Microsoft Visual Basic Professional Edition for Windows 5.0, 6.0 Microsoft Visual Basic Enterprise Edition for Windows 5.0, 6.0 Microsoft Access 2000 Microsoft Data Access Components 2.5, 2.6本文的發(fā)布號曾為 CHS238401 癥狀當(dāng)您試圖從 Visual Basic 程序訪問 Access 2000 數(shù)據(jù)庫時,可能會遇到以下錯誤之一:
如果您使用 ADO(或 ADO 數(shù)據(jù)控件):
運行錯誤:-2147467259:數(shù)據(jù)庫格式不可識別 如果您使用 DAO(或 DAO 一般數(shù)據(jù)控件):
運行錯誤:3343:數(shù)據(jù)庫格式不可識別 原因Access 2000 使用的是 Jet 4.0 引擎,它創(chuàng)建 Jet 4.0 格式數(shù)據(jù)庫文件。 而 Jet 3.5 組件無法識別這種格式。 如果您使用 ADO,并試圖通過 Microsoft Jet OLEDB 3.51 提供程序連接 Access 2000 時,將得到錯誤消息 -2147467259。 如果您使用 DAO,并使用“Microsoft DAO 3.51 對象庫”時,將得到上面的 3343 錯誤消息。 DAO 一般數(shù)據(jù)控件不能與 Access 2000 數(shù)據(jù)庫一起工作,并總是產(chǎn)生 3343 錯誤,但您可以按照本文的解決方式部分給出的說明來避免錯誤發(fā)生。 之所以發(fā)生錯誤,是因為此控件是基于 Jet 3.51 的,因而只能識別 Jet 3.51(或以前版本)的數(shù)據(jù)庫格式。 解決方案要解決這一問題,請使用以下任意一種方法:
安裝 Visual Studio Service Pack 4。 對于 ADO(或 ADO 數(shù)據(jù)控件),請使用“Microsoft.Jet.OLEDB 4.0”提供程序。 對于 DAO,請轉(zhuǎn)到工程菜單,并選擇引用,使用“Microsoft DAO 3.6 對象庫”。 如果您使用的是一般數(shù)據(jù)控件,則需要打開一個 DAO 3.6 記錄集,并將其指派為數(shù)據(jù)控件的源,如下所示:
Option ExplicitPrivate daoDB36 As DatabasePrivate rs As DAO.RecordsetDim sPath As StringPrivate Sub Form_Load()sPath = _"C:\Program Files\Microsoft Office\Office amples\Northwind.mdb"Set daoDB36 = DBEngine(0).OpenDatabase(sPath)Set rs = daoDB36.OpenRecordset("Customers")Set Data1.Recordset = rsEnd Sub
該問題在 Visual Basic Service Pack 4 中已得到解決,將新值 ( Access 2000 ) 添加到連接屬性中,DAO 數(shù)據(jù)控件即可打開 Access 2000 數(shù)據(jù)庫。 狀態(tài)Microsoft 已在 Visual Basic Service Pack 4 中解決了這一問題,將新值 (Access 2000) 添加到“連接”屬性中,DAO 數(shù)據(jù)控件即可打開 Access 2000 數(shù)據(jù)庫。 要獲得 Visual Studio Service Pack 4,請訪問以下網(wǎng)站:
http://msdn.microsoft.com/vstudio/sp 參考有關(guān) Jet 4.0 的詳細(xì)信息,請參閱 Access 2000 文檔。
有關(guān) ADO 和 DAO 的詳細(xì)信息,請參見 Visual Basic 文檔。
有關(guān)“不可識別的數(shù)據(jù)庫格式”的詳細(xì)信息,請在 Visual Basic 隨附的 MSDN Library 中查詢相應(yīng)主題。
如果您使用 ADO(或 ADO 數(shù)據(jù)控件):
運行錯誤:-2147467259:數(shù)據(jù)庫格式不可識別 如果您使用 DAO(或 DAO 一般數(shù)據(jù)控件):
運行錯誤:3343:數(shù)據(jù)庫格式不可識別 原因Access 2000 使用的是 Jet 4.0 引擎,它創(chuàng)建 Jet 4.0 格式數(shù)據(jù)庫文件。 而 Jet 3.5 組件無法識別這種格式。 如果您使用 ADO,并試圖通過 Microsoft Jet OLEDB 3.51 提供程序連接 Access 2000 時,將得到錯誤消息 -2147467259。 如果您使用 DAO,并使用“Microsoft DAO 3.51 對象庫”時,將得到上面的 3343 錯誤消息。 DAO 一般數(shù)據(jù)控件不能與 Access 2000 數(shù)據(jù)庫一起工作,并總是產(chǎn)生 3343 錯誤,但您可以按照本文的解決方式部分給出的說明來避免錯誤發(fā)生。 之所以發(fā)生錯誤,是因為此控件是基于 Jet 3.51 的,因而只能識別 Jet 3.51(或以前版本)的數(shù)據(jù)庫格式。 解決方案要解決這一問題,請使用以下任意一種方法:
安裝 Visual Studio Service Pack 4。 對于 ADO(或 ADO 數(shù)據(jù)控件),請使用“Microsoft.Jet.OLEDB 4.0”提供程序。 對于 DAO,請轉(zhuǎn)到工程菜單,并選擇引用,使用“Microsoft DAO 3.6 對象庫”。 如果您使用的是一般數(shù)據(jù)控件,則需要打開一個 DAO 3.6 記錄集,并將其指派為數(shù)據(jù)控件的源,如下所示:
Option ExplicitPrivate daoDB36 As DatabasePrivate rs As DAO.RecordsetDim sPath As StringPrivate Sub Form_Load()sPath = _"C:\Program Files\Microsoft Office\Office amples\Northwind.mdb"Set daoDB36 = DBEngine(0).OpenDatabase(sPath)Set rs = daoDB36.OpenRecordset("Customers")Set Data1.Recordset = rsEnd Sub
該問題在 Visual Basic Service Pack 4 中已得到解決,將新值 ( Access 2000 ) 添加到連接屬性中,DAO 數(shù)據(jù)控件即可打開 Access 2000 數(shù)據(jù)庫。 狀態(tài)Microsoft 已在 Visual Basic Service Pack 4 中解決了這一問題,將新值 (Access 2000) 添加到“連接”屬性中,DAO 數(shù)據(jù)控件即可打開 Access 2000 數(shù)據(jù)庫。 要獲得 Visual Studio Service Pack 4,請訪問以下網(wǎng)站:
http://msdn.microsoft.com/vstudio/sp 參考有關(guān) Jet 4.0 的詳細(xì)信息,請參閱 Access 2000 文檔。
有關(guān) ADO 和 DAO 的詳細(xì)信息,請參見 Visual Basic 文檔。
有關(guān)“不可識別的數(shù)據(jù)庫格式”的詳細(xì)信息,請在 Visual Basic 隨附的 MSDN Library 中查詢相應(yīng)主題。