Пользовательское меню

vah
Дата: 05.11.2009 11:31:37
Скажите пожалуйста, что нужно сделать, чтобы пользователькое меню было в виде обычных кнопок, а не в виде какскадного списка как здесь?

    Set pop = Application.CommandBars.Item("menu").Controls.Add(msoControlPopup)
    With pop
         .Caption = rstEmployees!Name
         .Tag = "menu"
         .BeginGroup = True
    End With

Заранее благодарен.
отакота
Дата: 05.11.2009 11:37:42
vah
Скажите пожалуйста, что нужно сделать, чтобы пользователькое меню было в виде обычных кнопок, а не в виде какскадного списка как здесь?

    Set pop = Application.CommandBars.Item("menu").Controls.Add(msoControlPopup)
    With pop
         .Caption = rstEmployees!Name
         .Tag = "menu"
         .BeginGroup = True
    End With

Заранее благодарен.

msoControlPopup - это и есть списочный контрол
а обычная кнопка - это msoControlButton
vah
Дата: 05.11.2009 11:42:20
отакота

msoControlPopup - это и есть списочный контрол
а обычная кнопка - это msoControlButton


    Set pop = Application.CommandBars.Item("menu").Controls.Add(msoControlButton)
    With pop
         .Caption = rstEmployees!Name
         .Tag = "menu"
         .BeginGroup = True
    End With


В этом случае пишет ошибку "Несоответствие типов"
отакота
Дата: 05.11.2009 11:51:40
а CommandBars.Item("menu") - это у вас не строка меню, часом?
сделайте ваш коммандбар типа панель инструментов, жизнь наладится.
vah
Дата: 05.11.2009 11:57:00
отакота
а CommandBars.Item("menu") - это у вас не строка меню, часом?
сделайте ваш коммандбар типа панель инструментов, жизнь наладится.


у меня такое объявление

Dim ctl As Office.CommandBars, pop As Office.CommandBarPopup, btn As Office.CommandBarButton

gr = 0
Set rstEmployees = CurrentProject.Connection.Execute("Execute main_app_menu '" & gr & "'", adExecuteNoRecords)

Do Until rstEmployees.EOF

    Set pop = Application.CommandBars.Item("menu").Controls.Add(msoControlButton)
    With pop
         .Caption = rstEmployees!Name
         .Tag = "menu"
         .BeginGroup = True
    End With

какая из этих переменных панель инструментов?
отакота
Дата: 05.11.2009 12:01:35
вот:
Application.CommandBars.Item("menu")

и в приведенном коде подразумевается, что этот CommandBars у вас уже ранее создан.
vah
Дата: 05.11.2009 12:25:50
отакота
вот:
Application.CommandBars.Item("menu")

и в приведенном коде подразумевается, что этот CommandBars у вас уже ранее создан.


почему в такой интерпритации не пишутся названия кнопок?

Dim ctl As Office.CommandBarControl

gr = 0
Set rstEmployees = CurrentProject.Connection.Execute("Execute main_app_menu '" & gr & "'", adExecuteNoRecords)
Do Until rstEmployees.EOF

    Set ctl = Application.CommandBars.Item("menu").Controls.Add(msoControlButton)
    With ctl
         .Caption = rstEmployees!Name
         .Tag = "menu"
         .BeginGroup = True
         .OnAction = ""
    End With
отакота
Дата: 05.11.2009 12:44:43
ctl.Style надо задать соответствующий, например msoButtonCaption