0

一旦按下按钮,它就不会执行子例程定义的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

我没有收到任何错误,只是即使菜单显示它也没有做任何事情。

4

1 回答 1

1

实际上OnAction子程序需要

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

所以你应该把你的代码改成这样:

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

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

Public Sub Dale()
    MsgBox "hola"
End Sub
于 2019-05-16T18:22:37.760 回答