MS Access - 上下文菜单 - 获取根控制

MS Access - context menu - get root control

我有一个表格,用户可以在其中预览与发票相关的不同文档(采购订单、发票、运输说明...)。为了简化,我将它们称为 doc#1、doc#2、doc#3。每个文档都保存在特定的目录中。

在发票表格上,有 3 个按钮(button_doc1、button_doc2、button_doc#3)

我想要以下行为:

所以我尝试使用如下定义的上下文菜单:

Sub CreateFormShortcutMenu_OpenReportDir()
   Dim cmbRightClick As Office.CommandBar
   Dim cmbControl As Office.CommandBarControl

   ' Create the shortcut menu.

   Set cmbRightClick = CommandBars.Add("cmdShortCutMenu_FormOpenReportDir", msoBarPopup, False, True)

   With cmbRightClick
            ' Add the DeleteRecord command.
            Set cmbControl = .Controls.Add(msoControlButton, , , , True)
       With cmbControl
          .BeginGroup = True
          .Caption = "Open dir"
          .OnAction = "=CallbackOpenDocDir()"
          .FaceId = 106
      End With

   End With

   Set cmbControl = Nothing
   Set cmbRightClick = Nothing

   End Sub

我想知道是否可以在 3 个按钮上使用相同的上下文菜单(以避免冗余代码)?如何获取触发回调的按钮(名称或参考)。

Public Function CallbackOpenDocDir()
  dim strDocName as string 

  'code to get the button / doc name

  select case strDocName
      case "Doc#1"
          openFileExplorer doc1Dir
      case "Doc#2"
          openFileExplorer doc2Dir
      case "Doc#3"
          openFileExplorer doc3Dir
  end select

End Function

谢谢你的想法。

您可以使用此表单的代码来确定点击的按钮名称:

Me.ActiveControl.Name

或从任何地方打电话

Screen.ActiveControl.Name