日期:2013-09-18  浏览次数:20597 次

这篇文章中的信息适用于: 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 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 数据控件即可打开 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 中查询相应主题。