Access 2007宏可以确定自己的对象名吗??
我的数据库在很大程度上依赖于导航窗格自定义组,其中一些包含数百个或对象。我想创建一个通用的宏,我可以复制,重命名和放入任何组,这将执行最佳概括为“对该组中的每个其他对象执行此任务”的操作。
为此,宏需要知道自己的名称,因此可以查询MSysNavPane *组的名称,然后可以从那里开始工作。
我似乎记得VBA程序很难知道自己的名字,但我找不到任何有关Access宏的信息。
答案 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
应该与您想要的宏完全一样,只是它的形式不是宏