MS Access VBA |带参数的OnAction函数不起作用

时间:2018-02-26 16:35:04

标签: vba ms-access

我有一个带有一个按钮的命令栏。

Private Sub RightClickNode(nodex As MSComctlLib.node)
    clicked = None
    Dim tv As TreeView
    Dim Bar As CommandBar
    Set Bar = CommandBars.Add(, msoBarPopup, False, True)
    Set tv = getTVSuper

    'EXPAND & COLLAPSE ALL RELATED BUTTON(S)
    Dim cmdExpand As CommandBarButton
    Set cmdExpand = Bar.Controls.Add(msoControlButton)

    With cmdExpand
        .OnAction = "=Expand('" & nodex.key & "')"
        .Caption = "Expand All"
        .Style = msoButtonAutomatic
        .FaceId = 706
    End With

    Bar.ShowPopup

    If Not clicked = toDelete Then
        tv.Nodes(nodex.key).EnsureVisible
        tv.Nodes(nodex.key).Selected = True
    Else
        tv.Nodes(1).EnsureVisible
    End If

    Set Bar = Nothing
    Set cmdExpand = Nothing
    Set tv = Nothing

End Sub

Public Function Expand(key)
    clicked = toExpand
    MsgBox "Hello"
End Function

现在的问题是我在我的项目中以另一种形式使用了相同的代码,我只是接受它并重新调整它。另一方的代码工作正常,但在这一方面没有任何反应。

另外,如果我用简单的 MsgBox 替换OnAction属性中的函数名称:

With cmdExpand
    .OnAction = "=MsgBox('" & nodex.key & "')"
    .Caption = "Expand All"
    .Style = msoButtonAutomatic
    .FaceId = 706
End With

我收到了一个格式正确的消息框,其中包含我的nodex的键值(顺便说一句,这是树视图中的一个节点)。

你是否知道发生了什么事情,我现在正在努力奋斗2个小时,这是我已经用另一种形式做过的事情。

0 个答案:

没有答案