ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 8
«СОЗДАНИЕ МЕНЮ РАЗЛИЧНЫХ ТИПОВ»
Цель занятия: Изучить различные виды меню, реализуемые в MS Access. Научиться создавать и модифицировать различные виды пользовательских меню.
ИНФОРМАЦИОННАЯ ЧАСТЬ
Макрокоманда «ДобавитьМеню»
С помощью макрокоманды ДобавитьМеню можно создать:
пользовательские меню в группе Команды меню на вкладке Надстройки для определенных или базы данных в целом;
пользовательское контекстное меню (Контекстное меню. Меню, содержащее список команд, относящихся к конкретному объекту. Для вызова контекстного меню щелкните объект правой кнопкой или нажмите клавиши SHIFT+F10.) для формы, формы или для отчета. Пользовательское контекстное меню заменяет встроенное контекстное меню в формах, элементах управления форм и отчетах;
глобальное контекстное меню. Глобальное контекстное меню заменяет встроенные контекстные меню для полей в таблицах и запросах в режиме таблицы, форм и отчетов, за исключением добавленных пользовательских контекстных меню в формах, элементах управления форм и отчетах.
Настройка
Макрокоманда Добавить меню имеет следующие аргументы.
Таблица 1-Аргументы макрокоманды "Добавить меню"
Аргумент макрокоманды
|
Описание
|
Имя меню
|
Имя раскрывающегося меню, добавляемого в группу Команды меню на вкладке Надстройки. Введите имя меню в поле Название меню в разделе Аргументы макрокоманды окна построителя макросов. Этот аргумент является обязательным для меню на вкладке Надстройки. В пользовательских контекстных меню и глобальных контекстных меню он игнорируется.
Чтобы создать клавишу доступа (Сочетания клавиш, такие как ALT+Ф, которые позволяют перевести фокус в меню, на команду меню или на элемент управления без использования мыши.), позволяющую использовать клавиатуру для выбора меню, перед буквой клавиши доступа введите амперсанд (&). Эта буква будет подчеркнута в имени меню на вкладке Надстройки.
|
Имя макроса меню
|
Имя группы макросов, которая содержит макросы для команд меню. Этот аргумент является обязательным.
|
Текст строки состояния
|
Текст, который отображается в строке состояния при выборе меню. Этот аргумент игнорируется в пользовательских контекстных меню и глобальных контекстных меню.
|
Чтобы создать пользовательское меню на вкладке Надстройки, пользовательское контекстное меню, глобальное меню на вкладке Надстройки или глобальное контекстное меню с помощью макросов, необходимо выполнить следующие действия.
Создайте макрос меню, который содержит макрокоманду ДобавитьМеню, для каждого раскрывающегося меню, которое должно содержаться в пользовательском или глобальном меню. Для пользовательских контекстных и глобальных контекстных меню макрос меню должен содержать только одну макрокоманду ДобавитьМеню.
Назначьте команды каждому раскрывающемуся меню, создав группу макросов для каждого меню. Каждая команда запускает набор макрокоманд, определяемых макросом в данной группе макросов. Для пользовательских контекстных меню и глобальных контекстных меню создается только одна группа макросов, в которой каждый макрос содержит набор макрокоманд для одной из команд в контекстном меню.
-
Свяжите макрос меню с соответствующим объектом Access.
Чтобы создать пользовательское меню на вкладке Надстройки для определенной формы или отчета, в свойстве Строка меню для формы или отчета укажите имя макроса меню.
Чтобы создать пользовательское контекстное меню для определенной формы, элемента управления формы или отчета, в свойстве Контекстное меню формы, элемента управления или отчета введите имя макроса меню.
Чтобы создать глобальное меню на вкладке Надстройки, нажмите кнопку Microsoft Office , а затем кнопку Параметры Access. В диалоговом окне Параметры Access выберите категорию Текущая база данных, а затем в разделе Параметры ленты и панелей инструментов введите имя макроса меню в поле Строка меню.
Чтобы создать глобальное контекстное меню, нажмите кнопку Microsoft Office, а затем кнопку Параметры Access. В диалоговом окне Параметры Access выберите категорию Текущая база данных, а затем в разделе Параметры ленты и панелей инструментов введите имя макроса меню в поле Контекстное меню.
Для каждого меню на вкладке Надстройки требуется отдельная макрокоманда ДобавитьМеню.
Эти контекстные меню заменяют контекстные меню объектов, с которыми они связаны. Если в дальнейшем потребуется выполнять некоторые команды Access при помощи этих меню, воспользуйтесь макрокомандой ВыполнитьКоманду, чтобы вставить эти команды в группы макросов нужных меню.
Макрос можно запустить из команды меню с помощью макрокоманды ВыполнитьМакрос в макросе для этой команды.
Макрокоманды ДобавитьМеню можно использовать только в макросе меню, который задан свойством Строка меню или Контекстное меню формы, элемента управления формы или отчета либо полем Строка меню или Контекстное меню в разделе Параметры ленты и панелей инструментов в диалоговом окне Параметры Access. Его можно открыть, нажав кнопку Microsoft Office и кнопку Параметры Access, а затем выбрав категорию Текущая база данных. Макросы меню должны содержать только макрокоманды ДобавитьМеню.
Если макрос меню определен для формы, отчета или базы данных, он запускается приложением Access при каждом открытии этого объекта. Если во время редактирования макроса меню или группы макросов, определяющей его команды, открыта эта форма, отчет или база данных, этот объект необходимо закрыть и снова открыть, чтобы увидеть изменения.
При создании групп макросов, которые содержат команды для пользовательского меню, помните следующее.
В группе макросов имя в столбце Имя макроса для каждого макроса становится именем команды. При выборе команды текст, содержащийся в столбце Примечание соответствующей строки, будет отображаться в строке состояния.
Чтобы вставить линию между двумя командами меню, введите между ними дефис (-) в столбце Имя макроса.
Чтобы создать клавишу доступа, позволяющую использовать клавиатуру для выбора команды, в имени команды перед буквой клавиши доступа введите амперсанд (&). Эта буква будет подчеркнута в меню.
Для пользовательского меню или пользовательского контекстного меню можно создать подменю, используя макрокоманду ДобавитьМеню в группе макросов, определенной аргументом Имя макроса меню. Если поместить макрокоманду ДобавитьМеню в такую группу макросов, приложение Access создаст вложенное меню с именем меню и текстом строки состояния, определяемыми аргументами Имя меню и Текст строки состояния для данной макрокоманды ДобавитьМеню. Вложенное меню содержит команды, определяемые макросами в группе макросов, указанной аргументом Имя макроса меню макрокоманды ДобавитьМеню. Столбцы Имя макроса и Примечание такой макрокоманды ДобавитьМеню (которые обычно определяют имя команды и текст строки состояния для команды в пользовательском меню) не обрабатываются, поскольку эта макрокоманда определяет вложенное меню, а не команду в меню верхнего уровня. С помощью макрокоманд ДобавитьМеню в группах макросов для каждого уровня меню можно создать несколько уровней вложенных меню.
Условия макросов поддерживаются только в макросах меню верхнего уровня. Другими словами, с помощью условия в макросе меню можно определить, будет ли данное меню отображаться на вкладке Надстройки, но такая возможность предусмотрена только для меню верхнего уровня. Условия нельзя использовать для отображения и скрытия команд или вложенных меню. С помощью условия можно также скрыть или отобразить пользовательское контекстное меню либо глобальное контекстное меню.
Для запуска макрокоманды ДобавитьМеню в модуле VBA используется метод AddMenu объекта DoCmd. Кроме того, можно задать свойство MenuBar или ShortcutMenuBar в модуле VBA, чтобы создать пользовательское меню на вкладке Надстройки или связать пользовательское контекстное меню с формой, элементом управления формы либо отчетом. Можно определить свойство StartupMenuBar (программный эквивалент определения поля Строка меню), чтобы создать глобальное меню на вкладке Надстройки. Можно также задать свойство MenuBar объекта Application, чтобы создать глобальное меню на вкладке Надстройки. Подобным же образом можно определить свойство StartupShortcutMenuBar (программный эквивалент определения поля Строка контекстного меню) или свойство ShortcutMenuBar объекта Application, чтобы создать глобальное контекстное меню.
Создание настраиваемых и контекстных меню с помощью макросов
Макросы Access можно использовать для создания настраиваемых контекстных меню, которые появляются при щелчке правой кнопкой мыши форм, отчетов или отдельных элементов управления. Можно также создать настраиваемые меню, отображаемые на ленте для конкретных форм или отчетов.
Для создания меню с помощью макросов выполните три основных действия:
Создайте группу макросов, определяющую команды меню.
Создайте другой макрос, создающий само меню.
Назначьте меню элементу управления, форме, отчете или всей базе данных.
В следующих разделах эти действия описаны более подробно.
Действие 1. Создание группы макросов, содержащей команды меню
На этом этапе необходимо создать группу макросов, каждый макрос которой будет отдельной командой в контекстном меню.
Группа макросов — это один объект макроса, который содержит несколько независимых макросов. Отдельные макросы определяются путем ввода имени в столбце "Имена макросов". На следующем рисунке Macro3 представляет собой группу макросов. NotFoundMsg и FoundMsg — это отдельные макросы в группе, каждый из которых состоит из двух макрокоманд.
Столбец Имя макроса по умолчанию скрыт. Для отображения столбца Имена макросов на вкладке Конструктор в группе Показать или скрыть выберите пункт Имена макросов.
На вкладке Создание в группе Другие щелкните Макрос. Если эта команда недоступна, щелкните стрелку либо под кнопкой Модуль, либо под кнопкой Модуль класса, а затем щелкните Макрос.
На вкладке Конструктор в группе Скрыть/Отобразить выберите команду Имена макросов, чтобы отобразить столбец Имя макроса.
-
Для каждой команды, которую требуется добавить в пользовательское контекстное меню, выполните указанные ниже действия.
В столбце Имя макроса введите текст, который должен отображаться в контекстном меню (например, "Печать отчета" или "Сохранить").
В столбце Макрокоманда выберите первое действие, которое должно выполняться при выборе команды в контекстном меню.
При наличии нескольких действий, которые требуется выполнять при выборе этой команды, добавьте их в последующих строках. Для каждого из действий оставьте ячейку Имя макроса пустой.
Для создания разделителя между двумя командами меню в столбце Имя макроса введите между ними дефис (-).
Сохраните макрос с нужным именем, например mcrShortcutMenuCommands.
Ниже показан пример группы макросов для настраиваемого или контекстного меню.
Действие 2. Создание макроса, который создает меню
Это действие может казаться ненужным, но для создания контекстного меню из группы макросов, полученной в действии 1, необходимо создать второй макрос, содержащий макрокоманду ДобавитьМеню. Этот макрос иногда называется макросом меню.
На вкладке Создание в группе Другие щелкните Макрос. Если эта команда недоступна, щелкните стрелку либо под кнопкой Модуль, либо под кнопкой Модуль класса, а затем щелкните Макрос.
В первой строке макроса выберите в списке Макрокоманда значение ДобавитьМеню.
В группе Аргументы макрокоманды в поле Название меню введите название меню (например, "Команды отчета"). Этот аргумент не является обязательным, но рекомендуется использовать его, если в действии 3 планируется добавить меню на вкладку ленты (например, на вкладку Надстройки формы или отчета). Если в действии 3 меню добавляется как контекстное, аргумент Название меню пропускается.
В поле Имя макроса введите имя макроса, созданного ранее (действие 1).
Сохраните макрос с нужным именем, например mcrAddShortcutMenu.
На следующем рисунке показан примере макроса меню, который создает меню, полученное в действии 1.
Действие 3. Назначение меню элементу управления, форме, отчету или базе данных
В зависимости от того, где будет отображаться меню, воспользуйтесь одной или несколькими из описанных ниже процедур.
Добавление меню на вкладку "Надстройки" формы или отчета
Используйте эту процедуру, если необходимо, чтобы меню отображалось на вкладке Надстройки для определенной формы или отчета, как показано на следующем рисунке:
В области переходов щелкните правой кнопкой мыши форму или отчет, в которые требуется добавить меню, и выберите команду Конструктор.
На вкладке Конструктор в группе Сервис выберите команду Окно свойств.
Выделите объект целиком, выбрав из списка в верхней части области задач страницы свойств значение Форма или Отчет.
На вкладке Другие страницы свойств в поле свойства Контекстные меню введите имя макроса, созданного в действии 2 (в данном примере — "mcrAddShortcutMenu").
При следующем открытии окна формы или отчета вкладка Надстройки появится на ленте. Откройте вкладку для просмотра меню.
Добавление меню в качестве контекстного меню для формы, отчета или элемента управления
Используйте эту процедуру, если меню должно появляться при щелчке правой кнопкой мыши определенной формы, отчета или элемента управления, как показано на следующем рисунке:
В области переходов щелкните правой кнопкой мыши форму или отчет, в которые требуется добавить контекстное меню, и выберите команду Конструктор.
На вкладке Конструктор в группе Сервис выберите команду Окно свойств.
Выберите элемент управления или объект, которым требуется назначить контекстное меню.
На вкладке Другие страницы свойств в поле свойства Контекстное меню введите имя макроса, созданного в действии 2 (в данном примере — "mcrAddShortcutMenu").
Добавление меню в качестве глобального контекстного меню
Эта процедура заменяет все контекстные меню, отображаемые по умолчанию, в текущей базе данных. Настраиваемые контекстные меню, назначенные определенным формам, отчетам или элементам управления, при этом не изменяются.
Нажмите кнопку Microsoft Office, а затем выберите команду Параметры Access.
В диалоговом окне Параметры Access выберите категорию Текущая база данных.
В группе Параметры ленты и панелей инструментов в поле Контекстное меню введите имя макроса, созданного в действии 2 (в данном примере — "mcrAddShortcutMenu").
Настраиваемые контекстные меню заменяют используемые по умолчанию контекстные меню объектов, которым они назначены. Чтобы сохранить в этих меню определенные команды Access, с помощью макрокоманды ВыполнитьКоманду включите их в нужные группы макросов.
Настраиваемое контекстное меню, назначенное элементу управления, заменяет другие настраиваемые контекстные меню, которые определены в базе данных. Настраиваемое контекстное меню, назначенное форме или отчету, заменяет глобальное настраиваемое контекстное меню.
Если для формы, отчета или базы данных задан макрос меню, он будет запускаться каждый раз, когда открывается форма, отчет или база данных. Если при внесении изменений в макрос меню или в группу макросов, определяющих его команды, форма, отчет или база данных открыты, для применения изменений необходимо закрыть и повторно открыть их.
Чтобы создать вложенное меню, выполните действие 1 для создания отдельной группы макросов, содержащей только команды вложенного меню. Затем выполните действие 1 еще раз, чтобы определить команды для меню верхнего уровня. Добавьте вложенное меню в группу макросов более высокого уровня с помощью макрокоманды ДобавитьМеню. Ниже показана группа макросов для меню, которое содержит вложенное меню, а также полученное контекстное меню. Третья строка в группе макросов создает вложенное меню Экспорт в... (mcrSubMenu).
Можно создать несколько уровней вложенных меню с помощью макрокоманд ДобавитьМеню в группах макросов для каждого уровня меню. Необходимо указать значение Название меню для каждой макрокоманды ДобавитьМеню, в противном случае вложенное меню будет отображаться как пустая строка в меню верхнего уровня.
Условия макросов анализируются только в макросе меню верхнего уровня. Другими словами, в макросе меню можно использовать условие для определения того, будет ли выводиться определенное меню или контекстное меню, но эта возможность поддерживается только для меню верхнего уровня. Не допускается применение условий, определяющих вывод или скрытие команд меню и вложенных меню. Условия можно также использовать для вывода или скрытия настраиваемого контекстного меню и глобального контекстного меню.
При необходимости макрос меню, созданный в действии 2, может быть частью группы макросов. Например, при наличии нескольких контекстных меню для различных объектов и элементов управления можно создать один объект макроса, который содержит все необходимые меню макросов. При этом обязательно нужно отобразить столбец Название макроса и ввести уникальное название для каждого из макросов. В действии 3 используйте следующий формат для ссылки на макрос: имя_группы_макросов.имя_макроса. Например: mcrAddShortcutMenus.AddMenu2.
ИСПОЛНИТЕЛЬНАЯ ЧАСТЬ
1. Создайте форму Диаграмма Группа.
Д
Рисунок 1 Создание Диаграммы: выбор значений
ля этого выделите таблицу Группа. Не снимая выделения нажмите Создание- Формы-Сводная диаграмма . Откроется область диаграммы и список полей таблицы Группа. Перетащите на ось абсцисс Код отделения, на ось ординат Номер группы. При этом по оси значений у вас будут подсчитываться количества студентов отделения (рис.1).
Создайте пользовательское контекстное меню.
Для создания контекстного меню выберите Создание- Другие- Макрос. Выберите Работа с макросами- Конструктор- Показать или скрыть- Имена макросов. У вас добавиться столбец Имена макросов. Создайте при помощи этого окна четыре различных Макроса по образцам, внося необходимые изменения в аргументы макрокоманд по строкам.
Рисунок 2-Макросы для организации меню
П
Рисунок 4-Пользовательское меню
осле этого откройте форму Студент в режиме конструктора и выберите при помощи контекстного меню Свойства формы. Найдите на вкладке Другие свойство Контекстное меню. Установите для этого свойства значение Меню. Перейдите в режим просмотра. Вы увидите, что при нажатии правой кнопки мыши теперь будет появляться не стандартное меню, а созданное вами контекстное меню и с его помощью можно просматривать другие формы и таблицы из формы Студент.
3. Создайте для других форм подобные меню следующим образом:
Из формы Группа, чтобы можно было просмотреть формы и таблицы: Отделение, Преподаватель, Специальность.
Из форм Зачет и Экзамен, чтобы можно было просмотреть формы и таблицы: Предмет, Студент, Учащийся.
Из формы Предмет, чтобы можно было просмотреть формы и таблицы: Специальность, Преподаватель, Зачет и Экзамен.
Из формы Преподаватель, чтобы можно было просмотреть формы и таблицы: Разряд, Категория, Предмет.
Из формы Учащийся, чтобы можно было просмотреть формы и таблицы: Студент, Группа, Зачет и Экзамен.
Задайте для пользовательского контекстного меню таблицы Студент горячие клавиши для всех команд.
КОНТРОЛЬНЫЕ ВОПРОСЫ
Какие различные виды меню возможно создавать в MS Access?
В чем отличие глобальных меню от обычных пользовательских меню?
Как задавать клавиши доступа (Горячие клавиши) в меню?
Что задается в качестве макрокоманды при создании подменю?
Что такое макрос?
|