VBA CommandBarButton не запускает код OnAction - PullRequest
0 голосов
/ 16 мая 2019

После нажатия кнопки она не выполняет подпрограмму, определенную 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 Ответ

1 голос
/ 16 мая 2019

На самом деле OnAction подпрограмма должна быть

  1. публичный суб
  2. в публичном модуле

Так что вы должны изменить свой код на что-то вроде этого:

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

И поместите ваш саб в какой-нибудь публичный модуль:

Public Sub Dale()
    MsgBox "hola"
End Sub
...