2016-12-27 1 views
0

Access 2003에서 사용자 지정 메뉴가 만들어졌습니다. VBA를 사용하여 메뉴의 세부 정보를 보려면 어떻게해야합니까?사용자 지정 메뉴 정보보기

I.E. 각 옵션이하는 일에서 인쇄물을 얻으시겠습니까? 사용자 정의 메뉴는 옵션을 "실행 일보"가 무엇을하는가하는 것은 쿼리 qry_dly

라는 제목의 실행됩니다 그럼 난 이상적으로 너무 실행 매일 같이 VBA 출력을보고 싶은 경우 를 (이름, & 쿼리가 실행됩니다) -> qry_dly

답변

0

메뉴의 구조에 따라 약간의 조정이 필요할 수 있습니다. 그러나 일단 이것이 어떻게 작동하는지 이해한다면, 필요할 경우 변경을 할 수 있어야합니다.

먼저 사용자 지정 메뉴의 이름을 찾아야합니다. 이미 알고 있다면이 단계를 건너 뜁니다. 다른 사람이 반환 한 이름을 가져옵니다.

Dim x As Integer 
For x = 1 To CommandBars.Count 
    If CommandBars(x).BuiltIn = False Then 
     Debug.Print x, CommandBars(x).Name, CommandBars(x).BuiltIn 
    End If 
Next x 

그런 다음 사용자 지정 메뉴의 이름을이 절차에 전달합니다. 내가 말했듯이 메뉴가 설정되는 방식에 따라 메뉴가 설정되어있을 수도 있고 그렇지 않을 수도 있습니다.

Private Sub ReadMenuControls(ByVal strCmdBar As String) 

On Error GoTo errhandler 

Dim x, y As Integer 

Dim SubMenu As Object 

With CommandBars(strCmdBar) 
    Debug.Print "Control Count Main: ", .Controls.Count 

     For x = 1 To .Controls.Count 
      With .Controls(x) 
      Debug.Print x & " <== " & .Caption & " ==>" 
        If .Type = 1 Then 'Command Button 

         Debug.Print "Button", x, .Caption, .Type, .ID, .FaceId, .Style, .onaction 

        Else 'If .Type = 10 Then 'Menu 

         Set SubMenu = CommandBars(strCmdBar).Controls(x) 

         For y = 1 To SubMenu.Controls.Count 
           With .Controls(y) 
           Debug.Print " * Button", y, .Caption, .Type, .ID, .FaceId, .Style, .onaction 
           End With 
         Next 
        End If 
      End With 
     Next 

End With 

Exit Sub 

errhandler: 
If Err.Number <> 438 Then 
    Debug.Print "ReadMenuControls", Err.Number, Err.description 
End If 
Resume Next 
End Sub 
관련 문제