【问题标题】:How to modify reference to adodb of another Access 2010 database using vba如何使用 vba 修改对另一个 Access 2010 数据库的 adodb 的引用
【发布时间】:2014-01-08 05:54:54
【问题描述】:

我有一个 Access 2010 accdb 数据库,它是从 Access 2003 mdb 数据库转换而来的。
当我在 Access 2003 中运行以下代码时,它会创建一个默认情况下引用 ADODB 的数据库 - “Microsoft ActiveX 数据对象 2.5 库”(msado25.tlb)。

Set dbNewApp = Application.DBEngine.CreateDatabase("Test.mdb", dbLangGeneral)

如果我在 Access 2010 中运行以下(类似)代码,它会成功创建一个 accdb 数据库,但没有像上面那样引用 ADODB 库。

Set dbNewApp = Application.DBEngine.CreateDatabase("Test.accdb", dbLangGeneral)

根据以下链接,创建新数据库时包含的默认引用已在 DAO 和 ADODB 之间更改,并在不同版本的 Access 中再次更改:http://allenbrowne.com/ser-38.html

所以我需要我新创建的数据库来引用 ADODB。

我知道如何更改当前数据库的引用...

Set refNew = References.AddFromGuid("{00000205-0000-0010-8000-00AA006D2EA4}", 2, 5)

但是如何对我刚刚使用 DBEngine.CreateDatabase 创建的另一个访问数据库执行此操作?

【问题讨论】:

标签: vba ms-access ms-access-2010 adodb


【解决方案1】:

创建数据库后,应该可以打开它并添加参考:

Sub CreateDB()
Dim acApp As Access.Application
Dim dppath As String

    dbpath = "z:\docs\newmsmdb.mdb"
    ''http://msdn.microsoft.com/en-us/library/office/ff835033.aspx
    CreateDatabase dbpath, dbLangGeneral, dbVersion40

    ''http://msdn.microsoft.com/en-us/library/office/aa140509(v=office.10).aspx
    Set acApp = New Access.Application
    With acApp
        .OpenCurrentDatabase dbpath
        acApp.References.AddFromFile _
             "c:\program files\common files\system\ado\msado15.dll"
    End With
End Sub

【讨论】:

  • 我真的不喜欢你必须创建一个Access.Application 的新实例才能做到这一点,尽管似乎没有其他办法。 +1
  • Remou 很好用,非常感谢。我可能遇到过类似的情况,但被错误地认为“OpenCurrentDatabase”指的是您当前打开的数据库。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-27
  • 1970-01-01
相关资源
最近更新 更多