访问VBA:许多CommandButton执行相同的代码

时间:2017-05-26 10:58:08

标签: vba ms-access access-vba

我有一个包含许多按钮的表单。 这些按钮中的大多数都有一个.tag字段,用于标识其功能(数字字段)

点击时,每个按钮都应该执行相同的代码,将.tag值传递给函数:

Private Sub CtlNameA_Click()
   Call WriteTimbraIN(CInt(CtlNameA.tag))
   DoCmd.Close
End Sub

如果没有在每个按钮中编写相同的代码(控件名称除外),是否有更聪明的方法呢?

由于

2 个答案:

答案 0 :(得分:2)

您可以直接通过按钮点击事件从表单模块调用函数,并使用Screen.ActiveControl确定调用按钮。

Private Function GenericButton()

    Debug.Print "Called from " & Screen.ActiveControl.Name

    Call WriteTimbraIN(CInt(Screen.ActiveControl.Tag))
    DoCmd.Close

End Function

然后将=GenericButton()指定为OnClick事件 您可以通过多次选择所有按钮然后设置属性来一次性完成此操作。

答案 1 :(得分:1)

是的,使用 WithEvents 。可以在这里找到一个例子:

link