
Ход работы.
-
На основе заполненных таблиц реляционной модели базы данных «Студенты» составить перекрестный запрос, отражающий результаты сдачи сессии студентами определенной группы в соответствии с таблицей.
Фамилия |
Имя |
Номер зачетки |
Химия |
Физика |
……….. |
Иванов |
Иван |
21401 |
5 |
4 |
………... |
Петров |
Петр |
21405 |
3 |
5 |
………… |
На вкладке «Создание» выбираем «Конструктор запросов» добавляем двойным щелчком следующие таблицы: «Студенты», «Предметы», «Итоги сессии» на вкладке тип запроса выбираем «перекрестный», двойным щелчком по имени соответствующего поля, добавляем необходимые поля в запрос: «Фамилия», «Имя», «Отчество», «Номер зачетки», «Предмет», «Оценка» в поле «Перекрестная таблица» для полей «Фамилия», «Имя», «Отчество», «Номер зачетки» выбираем «Заголовки строк», для поля «Предмет» - «Заголовки столбцов», для поля «Оценка» - «Значение» в поле «Групповая операция» везде, кроме поля «Оценка» выставляем «Группировка», для поля «Оценка» выбираем «Sum» Файл Сохранить вводим имя запроса.
-
На основе созданного перекрестного запроса разработать запрос, обеспечивающий возможность в автоматизированном виде создавать ведомости на начисление стипендии. При этом считать: стипендия назначается студентам, получившим на экзаменах только «хорошо» и «отлично»; если оценок «хорошо» получено больше одной, то назначается стипендия в размере 100%; если получена одна оценка «хорошо» и остальные «отлично» - 150%; если все оценки «отлично» - 200%. Результаты запроса должны быть представлены в следующей ведомости.
Фамилия |
Имя |
Номер зачетки |
Процент стипендии |
Иванов |
Иван |
21401 |
100 |
Создаем запрос как в п.1, но без полей «Отчество», «Предмет» и «Оценка» на вкладке «тип запроса» выбираем «выборка» в свободном поле «Поле» пишем «Процент стипендии: IIf(Min([Оценка])>3;(IIf(Avg([Оценка])=5;"200%";(IIf(Avg([Оценка]=4.875));"150%";”100%”))); "Стипнедия не назначается")» файл сохранить вводим имя запроса «Стипендия»
-
Предусмотреть в структуре базы данных и отразить в запросах возможность наличия пересдач при назначении стипендии: если хотя бы одна пересдача была – стипендия не назначается.
В таблице «Итоги сессии» создадим поле «Количество пересдач» числового типа, изменим запрос «Стипендия» В вычисляемом поле изменим формулу на «Процент стипендии: IIf(Min([Оценка])>3and(Sum[Количество пересдач]=0); (IIf(Avg([Оценка])=5;"200%";(IIf(Avg([Оценка]=4.875));"150%";”100%”))); "Стипнедия не назначается")» файл сохранить вводим имя запроса «Стипендия»
-
Разработать отчет по итогам сдачи сессии студентами определенной группы с использованием Конструктора и Мастера.
На вкладке «Создание» выбираем «Мастер отчетов» выбираем таблицу «Студенты», добавляем поля «Фамилия», «Имя», «Отчество», выбираем таблицу «Итоги сессии» добавляем поля: «Код семестра», «Код предмета", "Оценка" Готово.
На вкладке «Создание» выбираем «Конструктор отчетов» добавляем в рабочую обл. те же поля, что и при создании в мастере файл сохранить вводим имя отчета.
-
Разработать отчет о размере назначаемой стипендии студентам определенной группы.
Создадим запрос на основе таблицы «Студенты» и запроса «Стипендия», добавим в него следующие поля: «Фамилия», «Имя», «Отчество», «Код группы», «Процент стипендии», затем на основе этого запроса создадим в мастере отчет.
-
Для формы студенты с использованием макроса создать фильтр для просмотра студентов определенной группы.
На вкладке «Создание» выбираем «Макрос» в поле «Макрокоманда» выбираем «ПрименитьФильтр», в условие отбора пишем «[Студенты Запрос].[Код группы]=1».
-
Для формы «Студенты» создать макрос для отмены фильтрации п.6.
На вкладке «Создание» выбираем «Макрос» в поле «Макрокоманда» выбираем «ПоказатьВсеЗаписи».
-
В режиме конструктора сгруппировать элементы фильтрации.
Открываем в режиме конструктора запрос по которому построена соответствующая форма к которой применяется фильтр, в поле «Фамилия» в строке «Сортировка» выставляем «по возрастанию».
-
Создать форму, используя в качестве источника данных перекрестный запрос по результатам сдачи сессии студентами факультета.
Открываем нужный запрос на вкладке «Создание» выбираем «Форма» файл сохранить вводим имя запроса.
-
В полученную в п.9 форму добавить макросы по фильтрации данных по группам.
Открываем нужную форму в режиме конструктора правой кнопкой мыши в любом месте рабочего поля конструктора свойства в окне свойств переходим на вкладку "События", в поле «Загрузка» выбираем «Макросы»Создаем макрос как в п.6 файл сохранить
-
Создать с использованием макросов главную кнопочную форму, обеспечивающую возможность доступа к формам, отчетам, выходу из Windows без доступа к главному меню Access.
На вкладке «Создание» выбираем «Конструктор форм» в созданную форму добавляем необходимое количество кнопок правой кнопкой мыши на каждой из кнопок свойства в окне свойств переходим на вкладку «События», в поле «нажатие кнопки» выбираем «Макросы» в поле «макрокоманды» выбираем (отдельно для каждой кнопки) «ОткрытьФорму», в поле «Имя формы» выбираем необходимую форму, «ОткрытьОтчет», в поле «Имя отчета» выбираем необходимый отчет, «ЗакрытьБазуДанных».
Вывод: освоили приемы создания сложных запросов на основе информации базы данных в среде Access, изучили технологии создания отчетов, освоили техники создания макросов в среде Access, применение макросов для повышения функциональных возможностей при работе с формами и элементами управления.