Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2      [все]
 Программа для создания контекстного меню в Access  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 4684
Access Shortcut (right-click) Tools

В качестве разработчиков наша основная задача - облегчить взаимодействие нашего пользователя с данными. Одним из способов обеспечения легкого доступа к функциям (сортировка, фильтрация и т. Д.) является создание контекстных меню с вызовом по нажатию правой кнопки мыши. К сожалению, Microsoft в последние годы сделала разработку такого меню более сложным, чем это было ранних версиях (до 2007).

К счастью, Dale Fye создал действительно приятную надстройку - инструмент быстрого создания контекстного меню , чтобы полностью изменить задачу создания таких контекстных меню.

Средство Access Shortcut Tools позволяет разработчикам быстро и легко создавать контекстные меню для правой кнопкой мыши через графический интерфейс пользователя. Разработчики программного обеспечения Windows ™ признают, что пользователи ожидают контекстно-зависимые контекстные меню при щелчке правой кнопкой мыши в приложениях. Access Shortcut Tools предоставляют следующие возможности:

- Создание новых контекстное меню
- Изменение существующих меню
- Копирование встроенных контекстных меню для использования во временных приложениях
- Скопировать существующие контекстные меню и соответствующий код из других баз данных Access
- Сгенерировать код VBA для создания или изменения меню во время выполнения


ДЖОР АНДЕРСОН :
2017-03-21 в 14:42

::: ВНИМАНИЕ РАЗРАБОТЧИКАМ БАЗ ДАННЫХ ACCESS :::
Люди ... Подумайте об этом ...
ВСЕ профессиональные приложения (Access и все остальное) содержат пользовательские контекстные меню быстрого доступа. И есть веская причина. Они помогают пользователям быть более эффективными, упрощая выполнение различных операций и т. д. ... простым щелчком правой кнопки мыши. Если вы не используете (создаете) пользовательские меню правой кнопки мыши в приложениях Access, подумайте об этом. Пользователи будут любить вас за это ... Я обещаю, и я знаю это из непосредственного опыта за последние 24,5 года разработки в Microsoft Access.

Плохая новость:
Microsoft удалила оригинальный диалог настройки для меню правой кнопки мыши с появлением ленты в версии Access 2007.
Результат ... чтобы создать пользовательские контекстные меню в> = A2007, вы должны написать много сложного и сложного кода.

(Очень) ХОРОШИЕ новости:
Дейл потратил более года на разработку нового, современного инструмента Access Shortcut Tools ... который является оригинальным инструментом быстрого доступа к STEROIDS.
Результат ... НЕ требуется код. Инструмент Dales делает все это для вас, делая его легким для создания пользовательского контекстного меню ... на самом деле намного проще, чем с оригинальным инструментом Microsoft.

Я использую этот инструмент еженедельно, и без этого, ну ... в лучшем случае было бы больно продолжать разрабатывать пользовательские контекстные меню быстрого доступа. Я помог Dale бета-тестировать этот инструмент почти год, в котором было добавлено много интересных функций, которых нет в первоначальном инструменте Microsoft Customize.


Можно загрузить полностью функциональную пробную версию инструмента Access Shortcut Tools ( 32-разрядный Office , 64-битный Office ). К сожалению полная версия платная и просят за неё 50 вечнозелёных.

А кто как выкручивается при создании контекстных меню? Лично я их создаю В Access 2003, а затем импортирую в свою базу.
-------------------------------------------------------------
А ты вложил уже свой кровный рубль в 50-ти миллиардное состояние Билла Гейтса?
24 июл 18, 10:51    [21596846]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5511
Joss,
win8,32 разрядный не дает ставить ("система windows защитила ваш компьютер")
может я и ретроград,но такой код не считаю сложным (пример):
(т.к посмотреть не удалось скажите а создание групп и подменю предусмотрено?)
+
Option Compare Database
Option Explicit
Private cbPop As Office.CommandBar

Private Sub Form_Close()
cbPop.Delete
End Sub

Private Sub Form_Load()
Dim cbb As Office.CommandBarButton, cbb1 As Office.CommandBarButton
Dim cbb2 As Office.CommandBarButton, cbb3 As Office.CommandBarButton
Dim pPop As Office.CommandBarPopup, ppPop As Office.CommandBarPopup
 Set cbPop = Application.CommandBars.Add("ContextMenu" & Me.Hwnd, msoBarPopup, False, True)
With cbPop
   Set cbb = .Controls.Add(1) 'добавление элемента управления в cbPop
     cbb.Caption = "RunTest" 'или
     cbb.FaceId = 607        'блок
     cbb.OnAction = "ay"     'with
   Set cbb1 = .Controls.Add(1) 'добавление элемента управления в cbPop
     cbb1.BeginGroup = True
     cbb1.Caption = "RunTest1"
     cbb1.FaceId = 362
     cbb1.OnAction = "by"   'имя функции или  макроса
   Set pPop = .Controls.Add(10) 'надпись в cbPop c имя подменю
     pPop.Caption = "menu 1"
End With
      Set ppPop = pPop.Controls.Add(10) 'надпись в menu 1.1 c имя подменю сл.уровня
            ppPop.Caption = "menu 2" 'и т.д.,устанавливая нужный тип эл.управления
            ' 1-кнопка,10-контекстное меню
            'не забудьте объявить переменную и подключить библиотеку Office
      Set cbb2 = pPop.Controls.Add(1) 'добавление элемента управления в подменю1
            cbb2.Caption = "2"
            cbb2.FaceId = 601
            cbb2.OnAction = "dy"
      Set cbb3 = ppPop.Controls.Add(1)  'добавление элемента управления в подменю2
            cbb3.Caption = "3"
            cbb3.FaceId = 361
            cbb3.OnAction = "ey"
Me.Поле0.ShortcutMenuBar = cbPop.Name
End Sub

24 июл 18, 12:41    [21597608]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 4684
Сейчас ответить не могу, гляну попозже.

Лично я создавал меню через GUI, а не кодом. хотя можно и им.
24 июл 18, 13:01    [21597728]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 4684
sdku, проверил. Да, возможно. При задании пунктов подменю перед названием пункта надо ставить "--". Допускается несколько вложений (сколько - не знаю). Группы разделяются сплитерами (пока точно не разобрался)

Да, там устанавливается crylic92.ocx. Может по-этому у Вас и не стало?
24 июл 18, 13:23    [21597848]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
Serg197311
Member

Откуда:
Сообщений: 339
sdku,

БАААААЛЬШОЙ человеческий РАХМАТ!!!!
пошел к своей базе прикручивать)))
24 июл 18, 13:39    [21597934]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5511
Joss,
может где и руководство есть?
24 июл 18, 13:52    [21597989]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
Serg197311
Member

Откуда:
Сообщений: 339
sdku,
На treeview не хочет работать
Так должно быть или можно что-то сделать?
24 июл 18, 14:35    [21598195]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 4684
sdku
Joss,
может где и руководство есть?
Не нашел. разбирался методом тыка и смотрел описание для 2003.
24 июл 18, 15:00    [21598339]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5511
Serg197311
sdku,
На treeview не хочет работать
Так должно быть или можно что-то сделать?

А treeview это поле или что-то другое? можно-ли что-то сделать- не знаю не пробовал (и не буду-что дает правый клик на treeview?)
24 июл 18, 15:55    [21598635]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5511
P.S.:даже родное встроенное не выпадает
24 июл 18, 16:04    [21598671]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
Serg197311
Member

Откуда:
Сообщений: 339
sdku,

Поле, конечно.... Насчет что дает- ну я бы нашел какие функции в него напихать....
Что самое непонятное....
в TRW.application есть ShortCutmenuBar......
И ему можно присвоить значение...... Только новое меню в этом случае появляется на всей форме, кроме самого дерева....
25 июл 18, 06:57    [21600052]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5511
посмотрите в свойствах какие события имеет treeview может после этого у Вас отпадут вопросы по контекстному меню для него
25 июл 18, 10:59    [21600507]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5511
Serg197311
sdku,

Поле, конечно....
Это элемент ActiveX,а не поле, который имеет свойства отличные от свойств поля
25 июл 18, 13:13    [21601012]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
Serg197311
Member

Откуда:
Сообщений: 339
sdku
посмотрите в свойствах какие события имеет treeview может после этого у Вас отпадут вопросы по контекстному меню для него

В смысле без mousedown и hitTest не обойтись?
25 июл 18, 16:06    [21601790]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
Serg197311
Member

Откуда:
Сообщений: 339
ок, отловлю я клик правой кнопкой, hitTestом выберу ноду, а как заставить это меню появиться?
25 июл 18, 16:12    [21601813]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5511
Serg197311,
Успехов в отлавливании события MouseDown (которого не существует) на treeview
(потом расскажите как)
25 июл 18, 17:03    [21602001]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
Predeclared
Member

Откуда: And God I know I'm one
Сообщений: 844
sdku
... Успехов в отлавливании события MouseDown (которого не существует) на treeview
...

А мужики то не знают! (с)

К сообщению приложен файл (TVMouseClick.zip - 10Kb) cкачать
25 июл 18, 19:57    [21602553]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
Serg197311
Member

Откуда:
Сообщений: 339
Predeclared,

THanks ))
25 июл 18, 20:20    [21602597]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
Serg197311
Member

Откуда:
Сообщений: 339
Predeclared,

может, и как эту менюху из небытия вызвать, подскажете?
25 июл 18, 20:23    [21602602]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
Predeclared
Member

Откуда: And God I know I'm one
Сообщений: 844
showPopUp

К сообщению приложен файл (TVMouseClick2.zip - 13Kb) cкачать
25 июл 18, 20:38    [21602649]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
Serg197311
Member

Откуда:
Сообщений: 339
Predeclared,

От жеж.... как все просто..... и без понтов.....
Ну- доведется пересечься и узнать друг друга - с меня..... то что употребляете)
25 июл 18, 20:45    [21602664]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
Predeclared
Member

Откуда: And God I know I'm one
Сообщений: 844
ОК.
:)
25 июл 18, 20:53    [21602686]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5511
А ведь для всех ActiveX полный перечень событий только в редакторе VBA

К сообщению приложен файл. Размер - 104Kb
26 июл 18, 01:10    [21603006]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5511
Вдогонку:ну отловите Вы событие,но контекстное меню назначить не сможете-нет такого свойства(открыть форму,отчет или вызвать процедуру-пожалуйста)

К сообщению приложен файл. Размер - 37Kb
26 июл 18, 01:37    [21603011]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 424
Joss, интересные Вы темы поднимаете, в 2003 -м Аксе было конечно "буйство красок"-контекстное меню собиралось просто и с удовольствием.
в 2007-м я создал себе такую процедуру (для примера порезал немного, подменю не использую) в модуле
+
Public Function CreateReportShortcutMenu(Namemenu, frmname, skladname)
    Dim cmbControl As CommandBarButton
'     Dim cmbControl2 As CommandBarButton
'    Dim cmbControl3 As CommandBarButton
    On Error Resume Next
        With CommandBars.Add(Namemenu, 5, , True)
        err.Clear

        Set cmbControl = .Controls.Add(msoControlButton, 2188, skladname) '2521,15948 4)
            With cmbControl
                .Caption = "Возвраты"
                .OnAction = "GaveBack"
                .Tag = frmname
            End With
        Set cmbControl = .Controls.Add(msoControlButton, 247) '2521)
              With cmbControl
                .Caption = "Разделение набора"
'                .Enabled = IsLoadedFrm(frmname)' - в зависимости от того какая форма загружена
                .DescriptionText = "Разделение набора на отдельные части"
                .OnAction = "Nabor"
            End With
    End With
End Function
Public Function GaveBack()
MenuRaspr 1
End Function

Public Function Nabor()
Call MenuRaspr(2)
End Function
' исходя из различных наборов параметров делаю те или иные действия
Private Sub MenuRaspr(PrIznak As Integer)
Dim k As Long, txt As String, str As String
txt = CommandBars("Context").Controls("Возвраты").Tag
str = CommandBars("Context").Controls("Возвраты").Parameter
Forms(txt).Dirty = False
' ...
DoCmd.OpenForm "frm_Nakl_Izmen", acNormal, , "[Vipsk_Kod]= " & k & " AND [Postavka]= " & Number_of_Postavka_Tovarov, acFormEdit, acDialog, txt 
Forms(txt).Controls(str).Requery
End Sub

'создание нужного меню и присвоение полю 
Private Sub Form_Load()
' ...

    CreateReportShortcutMenu "Context", Me.Name, "Skld"
    Me.Поле0.ShortcutMenuBar = "Context"
' ...
end sub
26 июл 18, 10:39    [21603460]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5511
alecko
....Me.Поле0.ShortcutMenuBar = "Context"....
Речь то идет об элементе ActiveX,который не имеет свойства ShortcutMenuBar, а не о поле у которого это свойство есть. Вывод:назначить контекстное меню Treeview невозможно
(разве что вдоволь поизощрявшись создать форму в виде меню)
26 июл 18, 11:24    [21603656]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 424
sdku, а при чем здесь TreeView? Joss про ActiveXы ничего не писал. речь в топике про контекстные меню. они и останутся когда и если модератор почистит флуд.
26 июл 18, 11:40    [21603739]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 3934
sdku
alecko
....Me.Поле0.ShortcutMenuBar = "Context"....
Речь то идет об элементе ActiveX,который не имеет свойства ShortcutMenuBar, а не о поле у которого это свойство есть. Вывод:назначить контекстное меню Treeview невозможно
(разве что вдоволь поизощрявшись создать форму в виде меню)
О как!
Картинка с другого сайта.
26 июл 18, 11:45    [21603765]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5511
Панург,
А это штатные ср-ва ACCESS?
26 июл 18, 12:19    [21603926]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 3934
sdku
А это штатные ср-ва ACCESS?
Что в данном случае "штатные"?
sdku
Речь то идет об элементе ActiveX

Это дерево и контекстное меню. После обработки напильником... тщательной...
26 июл 18, 12:24    [21603948]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
ROI
Member

Откуда: г. Тюмень
Сообщений: 1568
Панург
Это дерево и контекстное меню. После обработки напильником... тщательной...

Ясно что не трава.
Вас спросили это штатное дерево.
26 июл 18, 12:25    [21603958]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 3934
ROI, где в Access есть дерево, штатное? Да, это ActiveX TreeView версию не помню, не то 5, не то 6. В такой вид оно превращено в коде VBA, в Access. И меню тоже.

Я же ясно написал.
26 июл 18, 12:31    [21603978]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 3934
хотя, меню возможно винды, но это не играет никакой роли, можно присобачить и офисное.
26 июл 18, 12:35    [21603989]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5511
Панург,
Будьте добры,вкратце,пожалуйста-как создали?
26 июл 18, 13:02    [21604086]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 3934
sdku
Панург,
Будьте добры,вкратце,пожалуйста-как создали?
почитай всё что связано с событием NM_CUSTOMDRAW
небольшой пример.

К сообщению приложен файл (TreeView_TextStrikeOut6.7z - 139Kb) cкачать
26 июл 18, 15:44    [21604980]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
zimkon
Member

Откуда: guest_rusimport
Сообщений: 90
sdku,
посмотри ещё этот пример
http://hiprog.com/index.php?option=com_content&task=view&id=690
если разберешься, то поймешь, что всё довольно просто
26 июл 18, 16:01    [21605112]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
Serg197311
Member

Откуда:
Сообщений: 339
инет на работе обиженный начальством сисадмин обнулил) раньше написать не мог...
sdku
Вдогонку:ну отловите Вы событие,но контекстное меню назначить не сможете-нет такого свойства(открыть форму,отчет или вызвать процедуру-пожалуйста)

Используя метод predeclared - все получилось.... и процедуры вызываются - и все что хочешь.....
А mousedown(up) таки есть))
26 июл 18, 18:48    [21605789]     Ответить | Цитировать Сообщить модератору
 Re: Программа для создания контекстного меню в Access  [new]
Serg197311
Member

Откуда:
Сообщений: 339
sdku
alecko
....Me.Поле0.ShortcutMenuBar = "Context"....
Речь то идет об элементе ActiveX,который не имеет свойства ShortcutMenuBar,

Ну вот тут уж и я со своим более чем скромным опытом возражу..... Имеет, однозначно. Сам видел при просмотре свойств обьекта в отладчике.... Вот тока пачимуто не сработало.... наверное я не умею готовить кошек))
26 июл 18, 18:52    [21605803]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / Microsoft Access Ответить