Постановка задачи

 

2.1 Освойтесь с основными принципами построения макросов.

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

 

3. Пример решения.

 

3.1 Автоматизация работы формы "Преподаватели" и синхронизация форм "Средний балл" и "Задолженность".

3.1.1. Связывание форм с помощью командных кнопок:

 
 

3.1.1.1 Нужно создать макрос, открывающий форму "Преподаватели". Для этого откройте окно нового макроса (кнопка Создать при активном корешке Макросы) и переместите его так, чтобы Вы видели окно БД. Найдите в окне БД нужную форму, перетащите и опустите ее в верхней панели окна макроса. Access запишет макрокоманду ОткрытьФорму и правильно заполнит все аргументы. Заполните соответствующее примечание и сохраните макрос с именем "Преподаватели".

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 Нет Отчет о результатах Печать Сведения по зарплате Печать Наклейки студенты   Отчет о результатах Просмотр Сведения по зарплате Просмотр Наклейки студенты Просмотр

 

В таблице представлен пример для нескольких отчетов, сделайте сами для всех.

 

Откроем форму:

 
 

 

Сохраните все изменения.