【问题标题】:Converting Macros to VBA from Outside Current Database从当前数据库外部将宏转换为 VBA
【发布时间】:2015-06-27 05:56:01
【问题描述】:

我想要一种以编程方式将 Access 宏转换为 VBA 模块的方法。我知道如何手动执行此操作。我正在使用一些代码在当前数据库中执行此操作,并且让它工作。但是,我希望能够在当前数据库之外执行此操作。我计划将这个程序与其他实用程序类型的程序放在同一个数据库中。下面是我的代码。我收到一条消息,上面写着“Microsoft Access 找不到您在对象名称争论中引用的 test1。您对如何实现我想要实现的目标有任何建议吗?

Private Sub Command2_Click()
MsgBox "start here"
Dim strDB As String
Dim appAccess As Access.Application
Dim m As Object

strDB = "C:\Users\me\Desktop\testme.accdb"

Set appAccess = New Access.Application
appAccess.OpenCurrentDatabase strDB

For Each m In appAccess.CurrentProject.AllMacros

    Debug.Print m.Name
    DoCmd.SelectObject acMacro, m.Name, True
    DoCmd.RunCommand acCmdConvertMacrosToVisualBasic

Next

Set appAccess = Nothing

End Sub

【问题讨论】:

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


    【解决方案1】:

    DoCmdApplication 对象的成员。让这些命令从您创建的新 Application 对象实例 (appAccess) 而非运行您的 Command2_Click() 过程的 Application 实例工作。 p>

    appAccess.DoCmd.SelectObject acMacro, m.Name, True
    appAccess.DoCmd.RunCommand acCmdConvertMacrosToVisualBasic
    

    换句话说,基本上对DoCmd 执行与对appAccess.OpenCurrentDatabaseappAccess.CurrentProject 相同的操作...您将它们关联到特定的Application 实例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-10
      • 2021-08-22
      • 2021-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多