Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Вложенные макросы



Вложенный макрос– именованный макрос, включённый в простой макрос. Вложенный макросимеет своё уникальное имя и может содержать любые макрокоманды (действия). В предыдущих версиях предоставлялась возможность объединения отдельных простых макросов в группу. Делалось это, если объединённая группа макросов была связана с решением одной задачи или использовалась при работе с одним объектом. Такая группа в области навигации отображалась как один объект.

Синтаксис для ссылки на вложенный макрос:

ИмяГруппыМакросов.ИмяВложенногоМакроса

В Access 2010для включения в макрос вложенного макроса нужно выбрать соответствующую макрокоманду из раскрывающегося списка в поле Добавить новую макрокоманду или перетащить Вложенный макрос в нужное место из каталога команд (см. Рис. 6в, стр. 18). В макросе отобразиться блок, в котором по умолчанию вложенному макросу присвоено имя Sub1 (см. Рис. 11), предоставляется возможность добавления макрокоманд и присутствует признак конца вложенного макроса.

Рис. 11. Блок пустого вложенного макроса

Пример 2‑1: Пусть при просмотре данных о городах необходимо иметь возможность отображать информацию о странах, в которых эти города расположены.
Решение: Для решения задачи воспользуемся Базой данных Город, в которой уже созданы две таблицы: Город и Страна, также есть формы Город и Страна (см. Рис. 12 - Рис. 14, стр. 22).
  Создаем изолированный макрос с именем [Форма Страна], включающий вложенные макросы [Страна] и [Выбор]. Вложенный макрос[Страна] при открытии формы Город открывает форму Страна. Макрос [Выбор] фильтрует записи из таблицы Страна по значению поля [Страна], взятому из текущей записи формы Город. Макрос [Выбор] будет выполняться, когда пользователь, работая с формой Город, инициирует событие Двойное нажатие кнопки для поля Страна, в котором хранится информация о номере записи нужной информации о стране из таблицы Страна. На форме в поле Страна высвечивается краткое название страны, в то время как в таблице в этом поле хранится номер записи этой информации. Это достигается встроенным в таблицу Город в поле Страна [Запрос Страна].
  Шаг 1. Для создания изолированного макроса выполните команду Макрос на вкладке Создание в группе Макросы и код (см. Рис. 2, стр. 10). Шаг 2. В открывшемся окне макроса с помощью макрокоманды управления Вложенный макроссоздаем вложенные макросы с именами [Страна] и [Выбор]. Шаг 3. Макрос [Страна] дополняется макрокомандой ОткрытьФормуСтрана. Шаг 4. Макрос [Выбор] дополняется (см. Рис. 15, стр. 24): · макрокомандой ВыделитьОбъектСтрана, которая сделает объект (форма Страна) текущим и позволит выполнять для него макрокоманды; · макрокомандой ПоказатьВсеЗаписи, которая отменит фильтр, примененный ранее у форме; · макрокомандой ПрименитьФильтр, которая отфильтрует записи формы Страна в соответствии с новым условием отбора.  

Рис. 12. Схема данных базы данных Город

Запрос Страна: SELECT Страна.[номер записи], Страна.[Страна краткий] FROM Страна;
Рис. 13. Таблица Страна Рис. 14. Таблица Город
  Шаг 5. Сохраняем созданный макрос под именем [Форма Страна]. Это имя будет выводиться в списке макросов в области налигации (см. Рис. 16, стр. 24). Шаг 6. Для запуска макроса [Страна] устанавливаем связь события Открыть формы Город с макросом. Для этого открываем форму Город в режиме конструктор, В окне свойств формы на вкладке События в качестве значения свойства Открытие выбираем из списка имя макроса [Макрос Форма Страна.Страна] (см. Рис. 17, стр. 25). Шаг 7. Для запуска макроса [Выбор] в свойствах поля Страна формы Город в качестве значения события Двойной нажатие кнопки выбираем [Макрос Форма Страна.Выбор] (см. Рис. 18, стр. 25). Шаг 8. Для проверки работоспособности макросов, открыть форму Город. На экране отобразятся обе формы Город и Страна, причем активной будет Город и форме будут доступны все записи. Шаг 9. Войдите в поле Страна формы Город и выполните двойной щелчок в этом поле. Результатом работы макросы [Выбор] будет переход на формц Страна с отображением в форме Страна записей отобранных по установленному фильтру (в нашем случае запись с информацией о конкретной стране).
     
Для ссылки на элемент управления в текущем объекте достаточно указать только имя элемента, для ссылки на элемент управления других открытых объектов должен использоваться полный синтаксис. Лучше использовать построитель выражений для формирования сложной ссылки на элемент.

Рис. 15. Макрос, организующий синхронный просмотр данных в двух формах

Макрос Форма Страна
Макрос Форма Страна

Рис. 16. Вложенный макрос

Рис. 17. Связь вложенного макроса со свойствами формы Город

Рис. 18. Связь вложенного макроса со свойствами поля формы Город

2.4. Внедрённые макросы

Внедрённый макросне отображается в области навигации, однако его можно вызывать из событий, таких как Загрузка или Нажатие кнопки. Поскольку макрос становится частью объекта формы или отчёта, внедрённые макросы рекомендуется создавать для автоматизации задач, которые специфичны для определённой формы или отчёта.

На внедрённые макросы нельзя сослаться из других макросов. Если Вы должны снова использовать действия, которые определяются макросом, следует создать новый отдельный макрос.

Чтобы создать внедрённый макрос, выберите, конструктор макросов в свойстве события объекта управления, затем диалоговое окно конструктора, в котором отмечаете - Макрос. Как только Вы создадите макрос, свойство события изменяется на [Внедрённый макрос] (см. Рис. 19).

Рис. 19. Внедрённый макрос

Внедрённый макрос всегда связывается с событием и сохраняется в форме или отчёте.

Пример 2‑2: Автоматизация расчёта плотности населения страны.
Решение: В базе данных Город для просмотра, корректировки и ввода данных по странам и городам создана многотабличная форма Страна-Город. Она состоит из главной формы, построенной на таблице Страна и подчинённой формы, построенной на таблице Город. Необходимо автоматизировать расчёт плотности населения в каждой стране.
  Шаг 1. Плотность определяется как частное от численности к площади. Для иллюстрации этого значения в форме Страна-Город в главной форме создаём свободное поле и называем его Плотность. Шаг 2. В полях Численность и Площадь в событиях После обновления создаём внедрённый макрос (см. Рис. 20). Шаг 3. Сохраняем макрос. Открываем форму Страна-Город и проверяем работоспособность макроса изменением данных в поле Численность. Шаг 4. Повторяем все действия с Шага 2 для поля Площадь. Шаг 5. Такой же внедрённый макрос привязываем к событию Текущая запись формы Страна-Город, для расчёта плотности при навигации по записям.

Рис. 20. Окно конструирования внедрённого макроса для поля Численность





Дата публикования: 2014-11-02; Прочитано: 4496 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...