升级至 Access 2000 时出现不可识别的数据库格式错误消息

发表于:2007-05-25来源:作者:点击数: 标签:不可别的Access2000升级
这篇文章中的信息适用于: 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 本文的发布号曾为 CHS238
这篇文章中的信息适用于:
  • 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
本文的发布号曾为 CHS238401

症状

当您试图从 Visual Basic 程序访问 Access 2000 数据库时,可能会遇到以下错误之一:

如果您使用 ADO(或 ADO 数据控件):
运行错误:-2147467259:数据库格式不可识别
如果您使用 DAO(或 DAO 一般数据控件):
运行错误:3343:数据库格式不可识别

原因

Access 2000 使用的是 Jet 4.0 引擎,它创建 Jet 4.0 格式数据库文件。 而 Jet 3.5 组件无法识别这种格式。
  • 如果您使用 ADO,并试图通过 Microsoft Jet OLEDB 3.51 提供程序连接 Access 2000 时,将得到错误消息 -2147467259。
  • 如果您使用 DAO,并使用“Microsoft DAO 3.51 对象库”时,将得到上面的 3343 错误消息。
  • DAO 一般数据控件不能与 Access 2000 数据库一起工作,并总是产生 3343 错误,但您可以按照本文的解决方式部分给出的说明来避免错误发生。 之所以发生错误,是因为此控件是基于 Jet 3.51 的,因而只能识别 Jet 3.51(或以前版本)的数据库格式。

解决方案

要解决这一问题,请使用以下任意一种方法:

  • 安装 Visual Studio Service Pack 4。
  • 对于 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 中已得到解决,将新值 ( Access 2000 ) 添加到连接属性中,DAO 数据控件即可打开 Access 2000 数据库。

状态

Microsoft 已在 Visual Basic Service Pack 4 中解决了这一问题,将新值 (Access 2000) 添加到“连接”属性中,DAO 数据控件即可打开 Access 2000 数据库。 要获得 Visual Studio Service Pack 4,请访问以下网站:

http://msdn.microsoft.com/vstudio/sp

参考

有关 Jet 4.0 的详细信息,请参阅 Access 2000 文档。

有关 ADO 和 DAO 的详细信息,请参见 Visual Basic 文档。

有关“不可识别的数据库格式”的详细信息,请在 Visual Basic 随附的 MSDN Library 中查询相应主题。

原文转自:http://www.ltesting.net