2.1 Освойтесь с основными принципами построения макросов.
2.2 На основе своего приложения создайте макросы, обрабатывающие события Ваших форм и отчетов и выполнение различных действий в зависимости от значения данных.
3. Пример решения.
3.1 Автоматизация работы формы "Преподаватели" и синхронизация форм "Средний балл" и "Задолженность".
3.1.1. Связывание форм с помощью командных кнопок:
3.1.1.2 Создайте макрос ОткрытьФорму для формы «Средний балл» (см. пукт 3.1.1.1). Откройте форму «Задолженности» в режиме конструктора, найдите в окне БД только что созданный макрос перетащите его и опустите в области заголовка формы "Задолженности". Access создаст командную кнопку, запускающую этот макрос (посмотрите ее свойство в бланке данных –Нажатие кнопки). Увеличьте кнопку по размеру данных командой меню Формат/Размер/По размеру данных. Измените название кнопки по своему усмотрению.
3.1.1.3 Сохраните изменения, откройте "Задолженность" в режиме формы, щелкните по кнопке "Средний балл ".
3.2. Организация работы с данными:
3.2.1 Так как полезно объединить в одну группу макросы, обрабатывающие события формы, в окне БД щелкните по корешку Макросы, выделите макрос "Средний балл" и выполните команду Правка/Переименовать. Введите имя "Задолженность". Затем откройте его в режиме конструктора, щелкните по
кнопкам вывода столбцов Имя макроса на панели инструментов.
Введите в столбец Имя макроса имя "Средний балл" в строку, которая
содержит макрокоманду открытия формы.
Откройте форму "Задолженность" в режиме конструктора, в бланке свойств командной кнопки установите свойство Нажатие кнопки в "Задолженность. Средний балл" (с помощью выпадающего списка). Формы "Задолженность" и "Средний балл" должны выводить информацию, связанную с одним студентом. Для этого в аргумент Условие отбора макрокоманды ОткрытьФорму макроса "Задолженность. Средний балл" введите выражение:
[Номер_С]= Forms![Задолженность]![Номер_С].
Сохраните изменения.
3.2.2. При закрытии формы «Задолженности» форма «Средний балл», остается открытой. Для ее закрытия необходима кнопка «Закрыть». Откройте форму «Средний балл» в режиме конструктора, выберите элемент «Кнопка» на панели элементов и с помощью конструктора создайте кнопку.
3.2.3 Облегчение работы с данными в формах при использовании макросов.
Для примера в группе макросов "Задолженность" создадим макросы для удаления текущей записи, перехода на новую запись для ввода новой записи, отмены и сохранения произведенных изменений.
Таблица 1.
Таблица группы макросов формы "Задолженности".
Имя макроса | Имя макрокоманды | Аргумент | Значение |
Новая запись | НаЗапись | Тип объекта Имя объекта Запись | Форма Задолженность Новая |
Отмена | КомандыКлавиатуры ОбновитьОбъект | Клавиша Пауза Тип объекта Имя Объекта | Esc Да Форма Задолженность |
Сохранить | ВыполнитьКоманду | Команда | Save Record |
Удалить | ВыполнитьКоманду КомандаКлавиатуры | Команда Клавиша Пауза | Select Record Del Да |
Создайте командные кнопки для этих макросов в области данных формы
"Задолженности", используя элемент командной кнопки на панели элементов конструктора форм и установив их подписи и свойства Нажатие кнопки.
При нажатии на кнопку удаления генерируется событие удаления записи, но удаление производится с использованием процедуры Access Basic, действия ее будут рассмотрены позже.
3.2.4 Для быстрого поиска сведений о студенте и связанной с ним информацией создадим поле «Номер_С» с выпадающим меню и откройте бланк свойств поля "Номер_С" с выпадающим списком и в свойстве После заполнения введите "Задолженность.Поиск". Access откроет окно группы макросов. Введите имя нового макроса и следующие столбцы заполните в соответствии с таблицей:
Таблица 2.
Макрос быстрого поиска студента.
Имя макроса | Имя макрокоманды | Аргументы | Значение |
Поиск | КэлементуУправления НайтиЗапись | Имя элемента Образец поиска Совпадения С учетом регистра Область поиска С учетом формата Только в текущем поле Первое вхождение | Номер_С =[Номер_С] Поля целиком Нет Все Нет Да Да |
Теперь при выборе номера студента в поле с выпадающим списком происходит перемещение на выбранную запись.
3.2.5 Добавим еще один макрос в данную группу макросов, осуществляющий открытие формы "Средний балл" только из формы "Задолженности". Для этого в свойство формы "Средний балл" Открытие введите имя макроса «Задолженность.Проверка». В открывшемся окне группы макросов введите имя нового макроса и следующие данные:
Таблица 3. Макрос проверки открытия
Условие | Макрокоманда | Аргументы | Значение |
Not IsLoaded (“Задолженность”) | Сообщение | Сообщение Сигнал Тип Заголовок | Используется с «Сво «Результаты» Да Информационный Информация! |
… | ОтменитьСобытие |
Т.о. если форма "Задолженность" не открыта, то при попытке открытия "Средний балл" мы выводим сообщение и отменяем событие открытия формы.
"..." ─ указывает на то, что макрокоманда выполняется при истинности предыдущего условия.
3.2.6 Рассмотрим использование макросов для условного вывода данных в отчете "Отчет о результатах". Будем выводить на печатать информацию о студентах у которых есть задолженность, в бланке области данных отчета свойство Форматирование свяжите со следующим макросом:
Таблица 4.
Условие | Макрокоманда | Аргументы | Значение |
Not([Задолженность]) | ЗадатьЗначение | Элемент Выражение | [Отчет о результатах]. Visible Ложь |
[Задолженность] | ЗадатьЗначение | Элемент Выражение | [Отчет о результатах]. Visible Истина |
Организация условного вывода в отчете «Отчет о результатах».
где [Задолженность] ─ невидимый при распечатке элемент управления, созданный при разработке отчета "Отчет о результатах".
3.3. Организация работы с отчетами.
3.3.1 Для организации просмотра отчетов создадим управляющую форму
"Диалог печати". В бланке свойств формы проведем следующие установки:
Режим – простая форма;
Полоса прокрутки – только по вертикали;
Всплывающее – Да;
Модальное окно – Да;
Тип границы – окна диалога;
Применение фильтров – нет;
Область выделения – нет;
Поле номера записи – нет.
(делаем окно всплывающим, без области маркировки, скроллинга и кнопок навигации с оформлением типа диалогового окна).
Данная форма содержит группу переключателей для выбора необходимого
отчета и список пунктов назначения со связанной подписью. Общий фон диалога темно-серый, все элементы управления серого цвета с различной выпуклостью. При создании группы переключателей имена переключателей вводятся вручную.
В правой части окна создайте кнопки для выхода из окна, печати и предварительного просмотра выбранного отчета.
Создайте группу макросов "Печать", содержащую макросы: "Печать", "Просмотр", "Выход".
Так как организация выхода (закрытия окна) достаточно проста остановимся на организации печати выбранного отчета и просмотра результатов работы (где [отчеты] ─ имя группы переключателей):
Таблица 5. Организация работы с отчетами.
Условие | Макрокоманда | Аргументы | Значение |
[отчеты]=1 [отчеты]=2 [отчеты]=3 [отчеты]=1 [отчеты]=2 [отчеты]=3 | ЗадатьЗначение ОткрытьОтчет ОткрытьОтчет ОткрытьОтчет ОткрытьОтчет ОткрытьОтчет ОткрытьОтчет | Элемент Выражение Имя отчета Режим Имя отчета Режим Имя отчета Имя отчета Режим Имя отчета Режим Имя отчета Режим | Forms![Диалог чати]. Visible Нет Отчет о результатах Печать Сведения по зарплате Печать Наклейки студенты Отчет о результатах Просмотр Сведения по зарплате Просмотр Наклейки студенты Просмотр |
В таблице представлен пример для нескольких отчетов, сделайте сами для всех.
Откроем форму:
Сохраните все изменения.