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

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

我有一个 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 创建的另一个 Access 数据库执行此操作?

最佳答案

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

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

关于vba - 如何使用vba修改对另一个Access 2010数据库的adodb的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20685507/

相关文章:

database - Access VBA : Error 2501 - The OpenQuery action was cancelled

vba - 如何使用vba扩展Excel中的隐藏行?

excel - 使用 vba 连接多个范围

Excel VBA - 使用 SELECT CASE 但现在需要一个数组

excel - VBA将Excel电子表格逐行导入Access

ms-access - 使用批处理脚本比较文件版本

VBA:测试调用堆栈的顶部

c - 将 XML 数据导入 Access 时出现问题

asp.net - 将 SQL Server 与 Access Form 或 ASP.NET 结合使用

ms-access-2010 - Access 2010 计算字段 - 表需要比静态字段更多的空间