Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка на лабораторные.doc
Скачиваний:
71
Добавлен:
01.05.2014
Размер:
3.26 Mб
Скачать

Порядок выполнения работы.

  1. Создание простого макроса.

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

  • Щелкните, находясь в окне БД, по корешку Макрос, а затем по кнопкеСоздать.

  • В окне макроса в столбец «Макрокоманда» выбором из списка введите макрокоманду Сообщение, а в столбец «Примечание» введите слово «Приветствие».

  • В нижней части окна в качестве текста сообщения (аргумент Сообщение) введите свое имя, фамилию и номер группы, отметьте, что вывод сообщения следует сопровождать звуковым сигналом (аргументуСигналследует присвоить значениеДа), а в окно сообщения кроме текста сообщения вывести значок «!» (значение аргументаТип).

  • Сохраните макрос(ФайлСохранить как), присвоив ему имя Message.

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

  • Запустите форму в работу.

  1. Создание макроса из нескольких макрокоманд.

Создадим макрос, который фильтрует данные в таблице PREP по дате заключения контракта, то есть по полю Contract. В качестве параметров, задаваемых пользователем, используем начальную и конечную даты, определяющие некоторый промежуток времени. Например, нам может потребоваться определить преподавателей, у которых только что закончился или закончится в ближайший месяц срок контракта.

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

  • Выберите вкладку Модуль и нажмите кнопкуСоздать .

  • Используйте команду ВставкаПроцедура,в открывшемся окне выберите радио-кнопкуфункцияи введите имя функции Nach_data.

  • Введите в окне модуля текст процедуры.

Public Function Nach_data() As Date

Nach_data = Date()

Nach_data = InputBox(«Введите начальную дату», «Ввод»)

End Function

  • Введите в окне модуля текст процедуры Konech_data, скопировав текст первой процедуры и отредактировав его.

Public Function Konech_data() As Date

Konech_data = Date()

Konech_data = InputBox(«Введите конечную дату», «Ввод»)

End Function

  • Сохраните модуль, назвав его Data_Input.

  • Перейдите на вкладку Макросыи создайте новый макрос.

  • Введите в макрос две макрокоманды:

  • Открыть таблицус аргументами «Имя таблицы» – PREP, «Режим» – «таблица», «Режим данных» – «только чтение».

  • Применить фильтрс аргументом «Условие отбора», значением которого является выражение:

[PREP]![Contract]>= Nach_data() And [PREP]![Contract]<= Konech_data()

  • Сохраните макрос под именем Фильтр1.

  • Запустите макрос командой ЗапускЗапуск.

Для выявления преподавателей, у которых срок контракта истек около месяца назад или истекает в ближайший месяц, в качестве конечной даты введите дату на 1 месяц больше даты пятилетней давности, а в качестве начальной – дату, которая на пять лет и 1 месяц меньше сегодняшней, поскольку контракт заключается на 5 лет.

  1. Создание макроса запуска приложения.

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

  • Вывод на Экранс аргументамиВключить вывод, установленным в «Нет», иСообщение, значением которого должен быть текст, который будет выводиться в строке состояния во время выполнения макроса, например «Запуск приложения». Эта макрокоманда предотвращает мелькание экрана во время выполнения макроса.

  • Песочные часыс аргументомВключить, установленным в «Да». Эта команда отображает на экране во время выполнения макроса песочные часы.

  • Открыть формус аргументомРежим в значении «Форма» и аргументомИмя формы, которому следует присвоить имя главной формы приложения, содержащей кнопки меню (вы можете указать имя любой формы с кнопками, созданной в лабораторной работе 7).

Сохраните макрос. Закройте БД Teach. Для проверки работы макроса снова откройте БД teach, убедитесь, что при этом запускается форма, имя которой вы указали в макросе AutoExec.

  1. Создание макроса с условием.

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

  • В области данных отчета правее поля Contract добавьте надпись «срок контракта истек», установите для этого элемента управления свойство Выводить на экранв значение «Нет», а свойствоКурсивв значение «Да», выберите для текста синий цвет, назовите элемент Контракт.

  • Ниже поля FIO проведите горизонтальную линию, подчеркивающую фамилию, установите для этого элемента управления свойство Выводить на экранв значение «Нет», а толщину линии выберите равной 2, назовите элемент Подчеркивание.

  • Сохраните отчет с изменениями под именем «Контракт2».

  • Щелкните по корешку Макросы, а затем по кнопкеСоздать.

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

  • В первую строку столбца Условие введите [Contract] <= Date() – 365 * 5, а в столбцеМакрокомандавыберитеЗадать значение. АргументуЭлементэтой макрокоманды надо присвоить значение[Контракт].Visible, а аргументуВыражение– значениеДа.

  • Во вторую строку столбца Условиевведите. Три точки означают, что выше заданное условие относится и к этой строке. В столбцеМакрокомандаснова выберитеЗадать значение. АргументуЭлементэтой макрокоманды надо присвоить значение[Подчеркивание].Visible, а аргументуВыражение– значениеДа.

  • В третью строку столбца Условиевведите[Contract] > Date() – 365 * 5, а в столбцеМакрокомандавыберитеЗадать значение. АргументуЭлемент этой макрокоманды надо присвоить значение[Контракт].Visible, а аргументуВыражение – значениеНет.

  • В четвертую строку столбца Условиевведите. В столбцеМакрокомандаснова выберитеЗадать значение. АргументуЭлемент этой макрокоманды надо присвоить значение[Подчеркивание].Visible, а аргументуВыражение– значениеНет

  • Последней пятой макрокомандой этого макроса может быть, но не обязательно, макрокоманда Остановить макрос. Эта макрокоманда не содержит условия и выполняется в случае, если не выполняются предыдущие условия. Правда, в нашем случае такого быть не может, одно из условий обязательно выполнится, поэтому использовать эту макрокоманду необязательно.

  • Сохраните макрос под именем «Контракт».

  • Откройте отчет «Контракт2» в режиме конструирования и свяжите свойство ФорматированиеразделаОбласть данныхс макросом «Контракт».

  • Запустите отчет на выполнение и убедитесь в том, что для преподавателей, заключивших контракт 5 и более лет назад, выводятся слова «срок контракта истек», а их фамилии подчеркиваются.

  1. Создание группы макросов

Создадим группу макросов, открывающих различные формы, запросы и отчеты, и свяжем ее с приведенной на рисунке 2.10 формой ,:

Сначала в режиме конструктора создадим заготовку формы «Информация»:

  • Поместите на форму заголовок «Информация и документы» и надписи, которые вы видите в левой части формы. Кнопки мы создадим позже, когда будет готов макрос.

  • В правой части формы создайте группу переключателей или радио-кнопок. Для этого воспользуйтесь инструментом Группа. Дайте группе название «Отчеты», а свойствуИмя присвойте значение «Выбор_отчета». Поскольку в группу должны входить четыре переключателя, воспользуйтесь 4 раза инструментомПереключательи поставьте переключатели в рамку группы. Каждому переключателю дайте имена Перекл1, Перекл2 и так далее, а подписи, задаваемые по умолчанию, поменяйте на те, которые вы видите на рисунке. Значение по умолчанию для группы установите в 1, это означает автоматический выбор первого отчета. Кнопку «Просмотр» создадим после создания макроса.

Рис. 2.10Вид формы, для которой создается группа макросов

  • Уберите из формы кнопки листания.

  • Обведите рамкой правую часть формы, относящуюся к выбору отчета. Проведите между левой и правой частями формы двойную вертикальную линию.

  • Сохраните форму под именем «Информация».

Теперь щелкните по корешку Макросыи перейдите к созданию группы макросов, открывающих две формы, три запроса и один из выбранных отчетов. Вид макроса показан на рисунке 2.11.

Рис. 2.11Макрос, связанный с формой, изображенной на рис. 2.10

Группа состоит из шести макросов. Первый макрос открывает для просмотра и редактирования созданную в лабораторной работе 7 форму «Преподаватель», вид которой показан на рисунке 2.1. Второй макрос открывает форму «Кто что ведет и где?», созданную в пункте 5 лабораторной работы 7. Макрос по имени З_Свободные_Преп открывает запрос, созданный в пункте 1.4.1 лабораторной работы 6. Запрос, который открывает макрос З_средняя нагрузка, был создан при выполнении четвертого задания для самостоятельной работы в лабораторной работе 6. Запрос, который открывает макрос З_Перекрестный – это перекрестный запрос, созданный в пункте 1.4.2. лабораторной работы 6. Аргумент Режимдля этих запросов следует установить в значениеТаблица, а аргументРежим данных– в значениеТолько чтение. Макрос «Отчеты» состоит из четырех макрокоманд, каждая из которых в зависимости от того, какая кнопка переключателя нажата, выводит для просмотра тот или иной отчет. Для всех отчетов аргументРежимустановлен в значениеПросмотр.

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

Запустите форму на выполнение и проверьте действие каждой кнопки.