- •Глава 2
- •Порядок выполнения работы.
- •Задание для самостоятельной работы.
- •Приложение к лр №1
- •Лабораторная работа 2: Модификация структуры бд. Цель работы
- •Общие сведения.
- •Порядок выполнения работы.
- •Задание для самостоятельной работы.
- •Лабораторная работа 3. Корректировка данных. Цель работы
- •Общие сведения.
- •Порядок выполнения работы.
- •Задание для самостоятельной работы.
- •Лабораторная работа 4: Сортировка, индексация, поиск и фильтрация данных. Цель работы
- •Общие сведения.
- •Порядок выполнения работы.
- •Задание для самостоятельной работы.
- •Лабораторная работа 5: Импорт, экспорт и присоединение данных Цель работы
- •Общие сведения
- •Порядок выполнения работы.
- •Задание для самостоятельной работы.
- •Лабораторная работа 6: Создание запросов на языке qbe. Цель работы
- •Общие сведения.
- •Порядок выполнения работы.
- •Задание для самостоятельной работы.
- •Лабораторная работа 7: Создание экранной формы. Цель работы
- •Общие сведения.
- •Порядок выполнения работы.
- •Задание для самостоятельной работы.
- •Лабораторная работа № 8: Создание отчетов. Цель работ
- •Общие сведения.
- •Порядок выполнения работы.
- •Задание для самостоятельной работы.
- •Лабораторная работа № 9: Создание макросов. Цель работы
- •Общие сведения.
- •Порядок выполнения работы.
- •Задание для самостоятельной работы.
- •Лабораторная работа 10: Создание меню приложения. Цель работы
- •Общие сведения.
- •Порядок выполнения работы.
- •Задание для самостоятельной работы.
- •Лабораторная работа 11: Создание приложения. Цель работы
- •Общие сведения
- •Порядок выполнения работы
Порядок выполнения работы.
Создание простого макроса.
Создадим макрос, который будет выводить ваше имя, например, при запуске одной из форм, созданных вами в работе 7. Для этого:
Щелкните, находясь в окне БД, по корешку Макрос, а затем по кнопкеСоздать.
В окне макроса в столбец «Макрокоманда» выбором из списка введите макрокоманду Сообщение, а в столбец «Примечание» введите слово «Приветствие».
В нижней части окна в качестве текста сообщения (аргумент Сообщение) введите свое имя, фамилию и номер группы, отметьте, что вывод сообщения следует сопровождать звуковым сигналом (аргументуСигналследует присвоить значениеДа), а в окно сообщения кроме текста сообщения вывести значок «!» (значение аргументаТип).
Сохраните макрос(ФайлСохранить как), присвоив ему имя Message.
Свяжите созданный макрос с событием загрузки одной из форм. Для этого откройте форму в режиме конструирования, откройте окно свойств формы, найдите событие «Загрузка» и в строке, относящейся к этому событию, из разворачивающегося списка макросов выберите пока единственный макрос Message.
Запустите форму в работу.
Создание макроса из нескольких макрокоманд.
Создадим макрос, который фильтрует данные в таблице 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 лет.
Создание макроса запуска приложения.
Создадим макрос, состоящий из нескольких макрокоманд, который при открытии базы данных будет запускать форму с основным меню приложения, работающего с этой базой данных. Имя такого макроса должно быть AutoExec. Для создания такого макроса выберите в окне создания макросов последовательно три макрокоманды:
Вывод на Экранс аргументамиВключить вывод, установленным в «Нет», иСообщение, значением которого должен быть текст, который будет выводиться в строке состояния во время выполнения макроса, например «Запуск приложения». Эта макрокоманда предотвращает мелькание экрана во время выполнения макроса.
Песочные часыс аргументомВключить, установленным в «Да». Эта команда отображает на экране во время выполнения макроса песочные часы.
Открыть формус аргументомРежим в значении «Форма» и аргументомИмя формы, которому следует присвоить имя главной формы приложения, содержащей кнопки меню (вы можете указать имя любой формы с кнопками, созданной в лабораторной работе 7).
Сохраните макрос. Закройте БД Teach. Для проверки работы макроса снова откройте БД teach, убедитесь, что при этом запускается форма, имя которой вы указали в макросе AutoExec.
Создание макроса с условием.
Измените отчет «Контракт», созданный в лабораторной работе 8 и содержащий список преподавателей с датами заключения ими контракта, таким образом, чтобы для тех преподавателей, у которых истек срок контракта, соответствующее предупреждение не только печаталось курсивом справа от даты заключения контракта, но и фамилия такого преподавателя подчеркивалась. Для этого:
В области данных отчета правее поля Contract добавьте надпись «срок контракта истек», установите для этого элемента управления свойство Выводить на экранв значение «Нет», а свойствоКурсивв значение «Да», выберите для текста синий цвет, назовите элемент Контракт.
Ниже поля FIO проведите горизонтальную линию, подчеркивающую фамилию, установите для этого элемента управления свойство Выводить на экранв значение «Нет», а толщину линии выберите равной 2, назовите элемент Подчеркивание.
Сохраните отчет с изменениями под именем «Контракт2».
Щелкните по корешку Макросы, а затем по кнопкеСоздать.
В окне создания макроса щелкните по пиктограмме Условия, чтобы появился столбец для задания условий выполнения макрокоманд.
В первую строку столбца Условие введите [Contract] <= Date() – 365 * 5, а в столбцеМакрокомандавыберитеЗадать значение. АргументуЭлементэтой макрокоманды надо присвоить значение[Контракт].Visible, а аргументуВыражение– значениеДа.
Во вторую строку столбца Условиевведите…. Три точки означают, что выше заданное условие относится и к этой строке. В столбцеМакрокомандаснова выберитеЗадать значение. АргументуЭлементэтой макрокоманды надо присвоить значение[Подчеркивание].Visible, а аргументуВыражение– значениеДа.
В третью строку столбца Условиевведите[Contract] > Date() – 365 * 5, а в столбцеМакрокомандавыберитеЗадать значение. АргументуЭлемент этой макрокоманды надо присвоить значение[Контракт].Visible, а аргументуВыражение – значениеНет.
В четвертую строку столбца Условиевведите…. В столбцеМакрокомандаснова выберитеЗадать значение. АргументуЭлемент этой макрокоманды надо присвоить значение[Подчеркивание].Visible, а аргументуВыражение– значениеНет
Последней пятой макрокомандой этого макроса может быть, но не обязательно, макрокоманда Остановить макрос. Эта макрокоманда не содержит условия и выполняется в случае, если не выполняются предыдущие условия. Правда, в нашем случае такого быть не может, одно из условий обязательно выполнится, поэтому использовать эту макрокоманду необязательно.
Сохраните макрос под именем «Контракт».
Откройте отчет «Контракт2» в режиме конструирования и свяжите свойство ФорматированиеразделаОбласть данныхс макросом «Контракт».
Запустите отчет на выполнение и убедитесь в том, что для преподавателей, заключивших контракт 5 и более лет назад, выводятся слова «срок контракта истек», а их фамилии подчеркиваются.
Создание группы макросов
Создадим группу макросов, открывающих различные формы, запросы и отчеты, и свяжем ее с приведенной на рисунке 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. Аргумент Режимдля этих запросов следует установить в значениеТаблица, а аргументРежим данных– в значениеТолько чтение. Макрос «Отчеты» состоит из четырех макрокоманд, каждая из которых в зависимости от того, какая кнопка переключателя нажата, выводит для просмотра тот или иной отчет. Для всех отчетов аргументРежимустановлен в значениеПросмотр.
Сохраните макрос под именем «Информация» и перейдите в режим редактирования формы «Информация». Создайте пять кнопок в левой части формы, связав их соответственно с первыми пятью макросами из группы «Информация». Правее подписи «Отчеты» создайте кнопку «Просмотр», связав ее с макросом «Отчеты», входящим в группу макросов «Информация».
Запустите форму на выполнение и проверьте действие каждой кнопки.