Access 2007宏可以确定自己的名称..?

时间:2017-07-04 22:47:47

标签: ms-access ms-access-2007

Access 2007宏可以确定自己的对象名吗??

我的数据库在很大程度上依赖于导航窗格自定义组,其中一些包含数百个或对象。我想创建一个通用的宏,我可以复制,重命名和放入任何组,这将执行最佳概括为“对该组中的每个其他对象执行此任务”的操作。

为此,宏需要知道自己的名称,因此可以查询MSysNavPane *组的名称,然后可以从那里开始工作。

我似乎记得VBA程序很难知道自己的名字,但我找不到任何有关Access宏的信息。

1 个答案:

答案 0 :(得分:1)

据我所知,没有。宏只能执行简单的命令。 你可以做的事情:

列出所有打开的宏(在当前编辑时打开,不运行)

Public Function AllMacros()
    Dim obj As AccessObject, dbs As Object
    Set dbs = Application.CurrentProject
    ' Search for open AccessObject objects in AllMacros collection.
    For Each obj In dbs.AllMacros
    If obj.IsLoaded = True Then
    ' Print name of obj.
    Debug.Print obj.Name
    End If
    Next obj
End Function

出于此目的使用表单

创建一个空白表单,并将计时器设置为1,并添加以下子表单(它运行MyFunction并将表单名称作为参数传递)

Private Sub Form_Timer()
    Me.Visible = False
    Run "MyFunction", Me.Name
    DoCmd.Close acForm, Me.Name
End Sub

应该与您想要的宏完全一样,只是它的形式不是宏