Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Маркетинг / Практикум / Access 2007 / Лабораторная работа 9.doc
Скачиваний:
70
Добавлен:
29.05.2015
Размер:
589.31 Кб
Скачать

4.3 Создание макроса, который запускается при открытии базы данных

Если каждый раз при запуске базы данных требуется выполнять определенный набор действий, можно создать макрос AutoExec. Например, может потребоваться развернуть окно базы данных, заблокировать область переходов и открыть определенный отчет.

Макрос AutoExec — это просто макрос с именем AutoExec. При открытии базы данных Access этот макрос запускается перед выполнением других макросов или кода VBA.

Создание макроса AutoExec

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

ЗАДАНИЕ 6

  1. На вкладке Создание в группе Другие щелкните Макрос. Если эта команда недоступна, щелкните стрелку либо под кнопкой Модуль, либо под кнопкой Модуль класса, а затем щелкните Макрос.

  2. В конструкторе макросов в первой пустой ячейке Макрокоманда выберите ОткрытьФорму. Выставите Аргументы макрокоманды так же как на рисунке 239.

Рисунок 239 – Аргументы макрокоманды

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

  1. Нажмите кнопку Сохранить и в диалоговом окне Сохранение введите название макроса AutoExec.

  2. Нажмите кнопку ОК и закройте конструктор макросов. Новый макрос будет выполняться при следующем открытии базы данных.

  3. Закройте базу данных и откройте снова. При открытии базы сразу откроется Главная форма.

Если макрос, содержащий действия, которые должны выполняться при запуске базы данных, уже создан, переименуйте его в AutoExec. Он будет запущен при следующем открытии базы данных.

Чтобы не использовать макрос AutoExec и другие параметры загрузки, удерживайте нажатой клавишу SHIFT во время запуска базы данных.

4.4 Создание внедренного макроса

Внедренные макросы отличаются от изолированных тем, что хранятся в свойствах событий в формах, отчетах или элементах управления. Они не отображаются как объекты в разделе Макросы в области переходов. Это облегчает управление базой данных, поскольку отпадает необходимость отслеживать отдельные макрообъекты, содержащие макросы для формы или отчета. Используйте следующую процедуру для создания внедренного макроса.

Внедренные макросы нельзя преобразовать в модули Visual Basic для приложений (VBA) с помощью инструментаПреобразовать макросы в группе Макрос на вкладке Работа с базами данных. Если планируется со временем преобразовать макрос в модули VBA, постройте изолированный макрос, а не внедренный. В таком случае можно будет воспользоваться инструментом Преобразовать макросы для преобразования макросов в VBA.

Внедрение макроса в событие отчета «Отсутствие данных»

Если при запуске отчета в источнике данных отсутствуют записи, отображается пустая страница отчета — то есть страница, на которой отсутствуют данные. Иногда желательно, чтобы вместо пустой страницы отображалось окно сообщения. Идеальным решением в этой ситуации является использование внедренного макроса.

Например, при запуске отчета «Квитанция» у нас используется внутренний фильтр, который выводит окно с параметром. В этом окне, нам необходимо указать код заказа. В результате, по указанному коду нам предоставляется квитанция по конкретному заказу. Если мы укажем в окне с параметром код несуществующего заказа, то будет выведена пустая страница. Именно для того, чтобы эта пустая страница не выводилась можно создать внедренный макрос, который будет выводить сообщение о том, что данных под таким номером не обнаружено.

ЗАДАНИЕ 7

  1. Откройте отчет «Квитанция» в режиме Конструктора или Макета.

  2. Если страница свойств еще не отображена, для ее отображения нажмите клавишу F4 или нажмите по значкуСтраница свойств.

  3. Откройте вкладку Событие на странице свойств (рисунок 240).

Рисунок 240 – Окно свойств

  1. Выберите событие Отсутствие данных.

  2. Нажмите кнопку .

  3. В диалоговом окне Построитель (рисунок 241) выделите пункт Макросы и затем нажмите кнопку ОК.

Рисунок 242 – Построитель

  1. Введите макрокоманды и аргументы, как показано на рисунке 243.

Рисунок 243 – Макрокоманды

  1. Обратите внимание, что в предыдущей таблице аргументы представлены в том виде, в каком они отображаются в столбце Аргументы. Фактически они вводятся в разделе Аргументы макрокоманды, как показано на рисунке 244.

Рисунок 244 – Аргументы макрокоманды

  1. Нажмите кнопку Закрыть.

Построитель макросов будет закрыт, а для события Отсутствие данных будет выведено сообщение [Внедренный макрос] (рисунок 245).

Рисунок 245 – Окно свойств

  1. Сохраните и закройте отчет.

Если при следующем запуске отчета записи не будут обнаружены, появится окно сообщения (рисунок 246). При нажатии в этом окне кнопки ОК отчет будет отменен без отображения пустой страницы.

Рисунок 246 – Сообщение об ошибке

ЗАДАНИЕ 8

Создайте аналогичные макросы для отчетов «Список поставщиков», «Список клиентов», «Менеджеры». Для данных отчетов должны быть сделаны условия отбора, аналогичные условию для отчета «Квитанция» (здесь имеются в виду внутренние фильтры отбора записей в отчетах. Например, в отчете «Менеджеры» может быть задан фильтр запрашивающий ввод фамилии конкретного менеджера, в отчете «Список поставщиков» поставщики отбираются по коду поставщика, а в отчете «Список клиентов» клиенты выводятся по коду клиента).

  1. Запуск макроса

Изолированные макросы можно запустить несколькими способами:

  • непосредственно (например, из области переходов),

  • из группы макросов,

  • из другого макроса,

  • из модуля VBA,

  • в ответ на событие в форме, отчете или элементе управления.

Для запуска макроса, внедренного в форму, отчет или элемент управления, нажмите кнопкуВыполнить на вкладке Конструктор, когда макрос находится в режиме конструктора. Иначе этот макрос будет выполняться только по событию, с которым он связан.

Непосредственный запуск макроса

Для непосредственного запуска макроса необходимо выбрать один из следующих вариантов:

  • Найдите макрос в области переходов и дважды щелкните его имя.

  • На вкладке Работа с базами данных в группе Макрос нажмите кнопку Выполнить макрос, выберите макрос в списке Имя макроса и нажмите кнопку ОК.

  • Если макрос открыт в режиме конструктора, нажмите кнопкуВыполнить на вкладке Конструктор в группе Сервис. Чтобы открыть макрос в режиме конструктора, щелкните его правой кнопкой мыши в области переходов и нажмите кнопку Конструктор.

Несмотря на новую возможность внедрять макросы непосредственно в свойства событий в формах, отчетах и элементах управления можно, как и в предыдущих версиях Access, создавать изолированные макросы и затем связывать их с событиями.

  1. СОЗДАНИЕ КОНТЕКСТНОГО МЕНЮ

Макросы Access можно использовать для создания настраиваемых контекстных меню, которые появляются при щелчке правой кнопкой мыши форм, отчетов или отдельных элементов управления. Можно также создать настраиваемые меню, отображаемые на ленте для конкретных форм или отчетов.

Для создания меню с помощью макросов необходимо выполнить три основных действия:

  1. создать группу макросов, определяющую команды меню;

  2. создать другой макрос, создающий само меню;

  3. назначить меню элементу управления, форме, отчету или всей базе данных.

Создайте для формы «Добавление нового заказа» контекстное меню, в котором будут содержаться следующие команды: Сохранить, Предварительный просмотр, Печать, Сортировка по возрастанию, Сортировка по убыванию, Закрыть. Для этого выполните следующие задания.

ЗАДАНИЕ 9

  1. На вкладке Создание в группе Другие щелкните Макрос. Если эта команда недоступна, щелкните стрелку либо под кнопкой Модуль, либо под кнопкой Модуль класса, а затем щелкните Макрос.

  2. На вкладке Конструктор в группе Показать или скрыть выберите команду Имена макросов, чтобы отобразить столбец Имя макроса.

  3. В столбце Имя макроса введите текст, который должен отображаться в контекстном меню. В вашем случае введите текст – «Сохранить».

  4. В столбце Макрокоманда выберите действие, которое должно выполняться при выборе команды в контекстном меню. В данном случае это макрокоманда Сохранить.

  5. Аналогичным образом, добавьте в эту группу макросы для выполнения других команд контекстного меню (Предварительный просмотр, Печать, Сортировка по возрастанию, Сортировка по убыванию, Закрыть). Для создания этих макросов используются макрокоманды ВыполнитьКоманду и Закрыть.

  6. Для создания разделителя между двумя командами меню в столбце Имя макроса введите между ними дефис (-). Создайте такой разделитель перед командой Закрыть (рисунок 247).

  7. Сохраните макрос под именем Для меню. Закройте его.

Рисунок 247 – Группа макросов

ЗАДАНИЕ 10

  1. Создайте новый макрос.

  2. В первой строке макроса выберите в списке Макрокоманда значение ДобавитьМеню.

  3. В группе Аргументы макрокоманды в поле Название меню вводится название меню. Этот аргумент не является обязательным, но рекомендуется использовать его, планируется добавить меню на вкладку ленты (например, на вкладку Надстройки формы или отчета). Если же меню добавляется как контекстное, аргумент Название меню пропускается. Введите название – «Контекстное меню».

  4. В поле Имя макроса введите имя макроса, который будет предоставлять в контекстное меню необходимые команды. В нашем случае это макрос Для меню.

  5. Сохраните макрос с именем Меню (рисунок 248).

Рисунок 248 – Создание макроса на добавление меню

ЗАДАНИЕ 11

Добавим созданный нами макрос Меню в форму «Добавление нового заказа» в виде контекстного меню. Для этого:

  1. Откройте форму «Добавление нового заказа» в режиме конструктора.

  2. На вкладке Конструктор в группе Сервис выберите команду Страница свойств.

  3. Выберите всю форму целиком, для этого щелкните курсором мыши по маркеру, который располагается в левом верхнем углу окна формы (рисунок 249).

Рисунок 249 – Маркер выделения объекта

  1. В окне свойств объекта перейдите на вкладку Другие и в поле свойства Контекстное меню введите имя макроса, который генерирует контекстное меню – Меню.

  2. Сохраните форму и откройте ее в режиме просмотра формы. Проверьте появляется ли контекстное меню и как оно работает (рисунок 250).

Рисунок 250 – Контекстное меню, созданное с помощью макросов

  1. РЕЗЮМЕ

  1. Макрос — это средство для автоматизации задач и добавления функциональных возможностей в формы, отчеты и элементы управления.

  2. один макрообъект может содержать несколько макросов - он называется группой макросов.

  3. Для макроса может использоваться имя макрообъекта.

  4. Аргумент — это значение, которое обеспечивает необходимую для макрокоманды информацию, например, какая строка должна отображаться в окне сообщения, с каким элементом управления следует выполнять действия и т. п.

  5. Условие определяет требования, которые должны быть соблюдены, для того чтобы была выполнена макрокоманда.

  6. Макрокоманды — это простейшие элементы, из которых строится макрос.

  7. Нововведения в макросы Access 2007:

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

  • Усиленная защита.

  • Обработка ошибок и отладка

  • Временные переменные

  1. Макрокоманду или набор макрокоманд можно назначить определенной клавише или сочетанию клавиш посредством создания группы макросов AutoKeys.

  2. Если каждый раз при запуске базы данных требуется выполнять определенный набор действий, можно создать макрос AutoExec.

  1. КОНТРОЛЬНЫЕ ВОПРОСЫ

  1. Что такое макрос? Что такое макрокоманда?

  2. Какова структура Конструктора макросов?

  3. Как отобразить/скрыть поля Условие и Имя макроса в Конструкторе макросов?

  4. Какова технология создания макроса, состоящего из набора макрокоманд?

  5. Какие макрокоманды Вам известны? Дайте краткую характеристику каждой из них.

  6. Какова технология создания группы макросов?

  7. С какой целью в макросе вводят условия выполнения?

  8. Какова технология добавления условий выполнения макросов? Приведите примеры использования условий в макросах.

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

  10. Что такое внедренный макрос? Чем внедренный макрос отличается от изолированного макроса? Какова технология создания внедренного макроса?

  11. Поясните технологию создания контекстного меню с помощью макросов?

  1. КОНТРОЛЬНОЕ ЗАДАНИЕ

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

Первый уровень сложности:

  1. Создайте макрос, который позволяет выводить на экран главную кнопочную форму вашей базы данных, при ее открытии.

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

  3. Создайте внедренный макрос, позволяющий выводить информационное сообщение в какой-либо форме вашей базы данных, если вы попытаетесь удалить запись целиком. Текст сообщения – «Производится удаление записи!»

Второй уровень сложности:

  1. Создайте макрос, который позволяет выводить на экран главную кнопочную форму вашей базы данных, при ее открытии.

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

  3. Создайте внедренный макрос, позволяющий выводить информационное сообщение в какой-либо форме вашей базы данных, если вы попытаетесь удалить запись целиком. Текст сообщения – «Производится удаление записи!»

  4. Создайте макрос, формирующий контекстное меню, для любой формы из вашей базы данных. Контекстное меню должно содержать следующие команды: Ввод данных, Сохранить, Вывод в документ Excel, Вывод в документ RTF, Закрыть.

30