Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаборатор access.doc
Скачиваний:
39
Добавлен:
02.02.2015
Размер:
32.54 Mб
Скачать

1.6 Макросы могут включать в себя несколько макрокоманд.

Если макрокоманду нужно выполнить при определенном условии, то если Вы не видите столбца Условие, щелкните по соответствую­щей кнопке на панели инструментов.

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

Для ссылки на форму или отчет нужно сообщить, в какое семейство они входят ─ Forms или Reports, соответственно:

Forms! [имя формы]

или Reports! [имя отчета].

Для ссылки на свойство формы или отчета после точки добавьте имя свойства:

Forms! [имя формы] . [имя свойства]

Reports! [имя отчета] . [имя свойства]

Для ссылки на элемент управления формы или отчета:

Forms! [имя формы] ! [имя элемента]

Reports! [имя отчета] ! [имя элемента]

Для ссылки на свойства элементов управления :

Forms! [имя формы] ! [имя элемента] . [свойство элемента]

Reports! [имя отчета] ! [имя элемента] . [свойство элемента]

Для ссылки на подчиненную форму:

Forms! [имя формы] ! [имя подформы]

Для ссылки на ее элемент:

Forms! [имя формы] ! [имя подформы]. Form! [имя элемента]

На их свойства ссылаются по аналогии с вышеприведенной формой.

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

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

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

Истина

Организация условного вывода в отчете «Отчет о результатах».

где [Задолженность] ─ невидимый при распечатке элемент управления, созданный при разработке отчета "Отчет о результатах".