【问题标题】:Calling Access Sub from Excel从 Excel 调用 Access Sub
【发布时间】:2012-03-17 09:02:13
【问题描述】:

我正在尝试从 Excel 调用 Access 数据库中的子例程。该子程序然后调用许多其他子程序,所有这些子程序都包含在数据库中。我看到了许多其他不鼓励这样做的帖子,但出于某种原因,Excel 需要成为这个的前端。我试过了:

Sub TestRun()
        Dim acObj As Access.Application
        Set acObj = CreateObject("Access.Application")
        acObj.Application.Visible = True
        acObj.OpenCurrentDatabase "C:\testMDB\TEST.mdb", False, "password"
        acObj.Application.Run ("TestRunAccess")
End Sub

数据库是具有密码的工作组的一部分 - 以这种方式运行仍会提示输入密码。我对 Access 不是很熟悉 - 我将如何去做?我需要包括哪些参考资料?

【问题讨论】:

    标签: ms-access excel vba


    【解决方案1】:

    那就是:

    ''Reference: Microsoft Access x.x Object Library
    Dim acObj As New Access.Application
    ''Set acObj = CreateObject("Access.Application")
    acObj.Application.Visible = True
    acObj.OpenCurrentDatabase "C:\testMDB\TEST.mdb",,"ADatabasePassword"
    acObj.Application.Run "TestRunAccess"
    

    如果您希望避免引用问题,您可能更喜欢使用后期绑定,在这种情况下:

    Dim acObj As Object
    Set acObj = CreateObject("Access.Application")
    acObj.Application.Visible = True
    acObj.OpenCurrentDatabase "C:\testMDB\TEST.mdb",,"ADatabasePassword"
    acObj.Application.Run "TestRunAccess"
    

    【讨论】:

    • 但是,我仍然遇到需要手动提供密码的麻烦。你知道怎么解决吗?
    • 这只是数据库密码还是您使用的是用户级安全性?对于数据库密码,请参阅编辑,它与您在示例中显示的相同。
    • 我认为这是用户级别的安全性,因为我相信它是从工作组定义的。
    • 为了用户级别的安全,我想你需要:support.microsoft.com/kb/192919/EN-US
    • 谢谢,我的问题似乎更多的是用户级别的安全性,而不是现在实际访问 Access。我会再玩一下那个部分。
    猜你喜欢
    • 2018-12-16
    • 1970-01-01
    • 1970-01-01
    • 2021-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    相关资源
    最近更新 更多