(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Динамические меню в MS Access - затягиваем гайки

Источник: s-2info

В статье "Использование динамических меню в Access" рассматривалось, как создать меню на основе панели инструментов. Пришло несколько писем с вопросами. Как скрыть системное меню? Как запретить пользователям выполнять настройку такого меню самостоятельно? Как перехватывать нажатия специальных клавиш, позволяющих отображать системное меню, окно базы данных и другие, и блокировать стандартные действия по ним или назначать свои действия.

Данный код, позволяет отключить системное меню MS Access:

Dim myMenuBar As CommandBar
Set myMenuBar = CommandBars("Menu Bar")
myMenuBar.Enabled = False ' соответственно = True, отобразит системное меню.

Следующая строка: Application.SetOption "Can Customize Toolbars", False

запрещает пользователям настройку меню, созданного на основе панели инструментов. Пользователь при счелчке правой кнопкой мыши по меню, не обнаружит стандартного пункта Customize...

Строка: Application.SetOption "Built-In Toolbars Available", False

погасит, и запретит появление всех встроенных контекстно зависимых панелей инструментов, таких как, например: "form design", "macro design", и т.д.

Для перехвата "горячих" клавиш необходимо создать макро, например с именем AutoKeysUser:

В колонке Macro Name введите название клавиши, например {F11} - для блокировки системного Window (окна БД). В колонке Action выберите действие. Если просто нужно заблокировать нажатие клавиши, то выберите действие beep - сигнал. При нажатии пользователем на клавишу F11 прозвучит сигнал. Можно выбрать любое действие, например OpenForm и открывать форму с курсами валют. Задайте все клавиши, которые нужно заблокировать, введите действия и сохраните макрос. Одновременные нажатия клавиш вводятся так: ^{F11}- Ctrl и F11, +{F5}- Shift и F5. Что бы макрос вступил в действие, его надо запустить строкой: Application.SetOption "Key Assignment Macro", "AutoKeysUser". Таким образом можно не только блокировать некоторые клавиши, но и создавать свои "горячие клавиши".

Рекомендую создать функцию:

Function ClearSystem()
    Application.SetOption "Key Assignment Macro", "AutoKeysUser"
    Application.SetOption "Built-In Toolbars Available", False
    Application.SetOption "Can Customize Toolbars", False
End Function

и запускать ее в момент инициализации программы. В дополнение к этому можно запретить останавливать запуск autoexec нажатием Shift, это было описано на этом сайте.

Меню на основе панели инструментов, может открывать форму, отчет, запрос, макрос. Если надо запускать определенную функцию, то создайте макрос и перечислите там все такие функции с именами (Macro Name). При настройке меню, на такие функции можно ссылаться, выбрав All Macros и с права в окне Commands, выберите этот "макрос"."имя входа". 

Наверняка Вы заметили, что автор использует не русифицированный MS Access. Все выше сказанное отлично работает и на русской версии. Но наоборот - не всегда. Если Вы напишите на событии "On Click" - [Event Procedure] - это будет работать везде, но если [Процедура обработки событий] (или как там оно пишется не могу проверить) - на оригинальном MS Access выдаст сообщение об ошибке. Тоже касается и всего выше сказанного: "Can Customize Toolbars",... Можете заменять русскими аналогами, но если попадется пользователь с установленным English MS Access, Вы с удивлением обнаружите, что процентов 5 программы почему то не работает. Причем удивительна избирательность, некоторые русские свойства "переводятся" на английской версии (их большинство), а некоторые нет.

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 24.06.2008 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Microsoft Office 365 Профессиональный Плюс. Подписка на 1 рабочее место на 1 год
Microsoft Office 365 для Дома 32-bit/x64. 5 ПК/Mac + 5 Планшетов + 5 Телефонов. Подписка на 1 год.
Microsoft 365 Business Basic (corporate)
Microsoft Office для дома и учебы 2019 (лицензия ESD)
Microsoft 365 Business Standard (corporate)
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Программирование в AutoCAD
СУБД Oracle "с нуля"
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100