升级至 Access 2000 时出现不可识别的数据库格式错误消息
发表于:2007-07-02来源:作者:点击数:
标签:
这篇文章中的信息适用于: 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本文的发布号曾为 CHS23840
这篇文章中的信息适用于: Microsoft Visual Basic Professional Edition for Windows 5.0, 6.0 Microsoft Visual Basic Enterprise Edition for Windows 5.0, 6.0 Microsoft A
clearcase/" target="_blank" >ccess 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 中查询相应主题。
原文转自:http://www.ltesting.net