Программирование на Visual Basic | Microsoft Access. Правая кнопка на формах меню

В этом разделе сайта находятся примеры из сборника программ "Архив файлов на Microsoft Access". В нем рассказывается о программировании форм, отчетов, таблиц и других объектов. Используйте этот архив для изучения работы с приложением Microsoft Office Access и программированием на Visual Basic for Application. Тем кто уже знаком с VBA, используйте поиск для нахождения кодов. Наберите, например, DAO, ADO, Recordset и найдете нужную ссылку для решения проблемы с программированием

Microsoft Access. Правая кнопка на формах меню

При разработке интерфейса Вам может потребоваться использовать правую кнопку мыши для вызова контекстного меню. Как это сделать программным способом смотрите в этом разделе.

Dim WithEvents myCombo As CommandBarComboBox ' Обработка событий

Const strMenu As String = "Правая кнопка"

Private Sub Form_Open(Cancel As Integer)
    ' Определяем название
    On Error Resume Next
    CommandBars.Item(strMenu).Delete
    Err.Clear
    
    ' Создаем панель меню
    On Error GoTo 999
    Dim myBar As CommandBar
    Set myBar = CommandBars.Add(strMenu, msoBarPopup, , False)
    
    ' Добавляем 1 кнопку
    Dim But As CommandBarButton
    Set But = myBar.Controls.Add(msoControlButton)
    With But
        .Style = msoButtonCaption ' Выбираем стандартный тип
        .FaceId = 1 ' Устанавливаем код кнопки
        .Caption = "Кнопка 1" ' Называем кнопку
        .OnAction = "=msgBox('Привет!')" ' Определяем программу
    End With
    
    ' Создаем список в меню
    Set myCombo = myBar.Controls.Add(msoControlDropdown, , 1)
    With myCombo
        .BeginGroup = True
        .Caption = "Cписок: "
        .Style = msoComboLabel
        .AddItem "Строка 1"
        .AddItem "Строка 2"
        .ListIndex = 2 ' Устанавливаем 2 вариант
        .DropDownWidth = -1 ' Выбираем ширину по самому длинному
    End With
    
    ' Добавляем кнопки меню из других панелей
    ' (для нахождения кодов смотрите пример 05)
    '
    With CommandBars("Menu Bar")
        .FindControl(, 523, , , True).Copy myBar ' Схема данных
        .FindControl(, 210, , , True).Copy myBar ' Сортировка по возрастанию
        .FindControl(, 211, , , True).Copy myBar ' Сортировка по убыванию
        .FindControl(, 19, , , True).Copy myBar ' Копировать в буфер
    End With
   
    ' Просмотр данных из текущей позиции
    ' myBar.ShowPopup
    Exit Sub
999:
    MsgBox Err.Description
End Sub

'==============================================================
'  Отключение
Private Sub butOld_Enter()
    Me.ShortcutMenuBar = ""
End Sub

'==============================================================
'  Включение меню
Private Sub butNew_Enter()
    Me.ShortcutMenuBar = strMenu
End Sub

'==============================================================
'  Включение меню
Private Sub myCombo_Change(ByVal ctrl As CommandBarComboBox)
    MsgBox "Текст: "  ctrl.Text
End Sub

Добавить комментарий

Loading