【问题标题】:VB6 & Access 2007 connection problemsVB6 和 Access 2007 连接问题
【发布时间】:2013-11-05 20:50:37
【问题描述】:

好的,所以我读过这个相同的问题,但答案对我不起作用:

Connecting VB6 and MS Access 2007

我已删除对 Microsoft DAO 3.6 对象库 的引用,并将其替换为对 Microsoft Office 12.0 Access 数据库引擎对象的引用

这是我的代码:

Dim rcdSetData As ADODB.Recordset

Set rcdSetData = New ADODB.Recordset
rcdSetData.CursorType = adOpenStatic
rcdSetData.ActiveConnection = _
    "Provider=Microsoft.Jet.OLEDB.4.0; " _
    & "Data Source=" & DBName & "; "

我可以很好地打开 Access 2003 *.mdb 文件,但是当我尝试打开 Access 2007 *.accdb 文件时,我得到:

Error #blahblah, Unrecognized database format 'C:\path\foo.accdb'

foo.accdb 是一个有效的 Access 2007 文件,就 Access 2007 而言。没有密码,顺便说一句,当我运行程序时,它没有在 Access 中打开。

我被难住了。我在网上能找到的每一个答案都表明我做得对......:\

【问题讨论】:

  • 您需要一个不同的 ACCDB 连接字符串。 Jet 提供程序只能连接到 MDB 格式的 db 文件。您需要 ACCDB 的 ACE 提供程序。

标签: ms-access vb6 ms-access-2007 database-connection


【解决方案1】:

DAO 引用(无论是该库的 Access 2007 之前或之后的版本)是无关紧要的,因为您的 VB 代码正在使用 ADO。您的问题在于连接字符串。换个试试

"Provider=Microsoft.Jet.OLEDB.4.0; " _

"Provider=Microsoft.ACE.OLEDB.12.0; " _

【讨论】:

  • 我意识到 DAO 是无关紧要的;我只是指出我现在使用的是什么 - 它适用于旧数据库。我已经尝试过 ACD 引擎参考;它对问题没有影响。
  • @JoeMarfice - 'DAO' 我的意思是两者,因此括号中的位('无论是该库的 Access 2007 之前或之后的版本')。所谓的“访问数据库引擎对象库”对我来说永远是 DAO ;-)
  • 啊,说清楚了! (当然,当我的意思是“ACE 引擎”时,我打错了“ACD 引擎”。)我们运气不错,不知道为什么它似乎在某些地方可以工作,但在其他地方却不行……但是现在当我们打开DB,我们发现我们需要更新我们的连接引用。总有一些东西......
【解决方案2】:

如果您最近重新安装了 VB6,请确保为它下载并安装 Service Pack SP6。

【讨论】:

  • 好主意,但没有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多