VBA CommandBarButton无法运行代码OnAction

时间:2019-05-16 14:57:49

标签: ms-access access-vba ms-access-forms

一旦按下按钮,它将不执行定义的子程序 OnAction 方法。

我已经检查了Access中的所有“安全性”选项是否已启用,并以不同的方式编写了相同的代码。

我尝试使用 OnAction 方法运行函数。

Private Sub Check_Status_Click()
    Dim cmdBAR As CommandBar
    Dim cmdButton1 As CommandBarButton

    Set cmdBAR = CommandBars.Add(, msoBarPopup, False, True)
    Set cmdButton1 = cmdBAR.Controls.Add(msoControlButton)

    cmdButton1.Caption = "Dale"
    cmdButton1.OnAction = "Dale"
    cmdBAR.ShowPopup

    'Clean
    Set cmdBAR = Nothing
    Set cmdButton1 = Nothing
End Sub

Public Sub Dale()
    MsgBox "hola"
End Sub

我没有收到任何错误,只是菜单显示没有执行任何操作。

1 个答案:

答案 0 :(得分:1)

实际上需要 OnAction 子例程

  1. 公共子
  2. 在公共模块中

因此,您应该将代码更改为以下内容:

...
    cmdButton1.Caption = "Dale"
    cmdButton1.OnAction = "Dale"
    cmdBAR.ShowPopup
...

并将您的sub放入一些公共模块中

Public Sub Dale()
    MsgBox "hola"
End Sub