如何使用vba修改对另一个Access 2010数据库的adodb的引用

时间:2013-12-19 15:29:03

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

我有一个Access 2010 accdb数据库,我从Access 2003 mdb数据库转换而来 当我在Access 2003中运行以下代码时,它将创建一个数据库,默认情况下,该数据库具有对ADODB的引用 - " Microsoft ActiveX Data Objects 2.5 Library" (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。

我知道如何更改当前db的引用...

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

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

1 个答案:

答案 0 :(得分:3)

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

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