Вы находитесь на странице: 1из 6

1

Системы управления базами данныхЛабораторная работа № 10

ЛАБОРАТОРНАЯ РАБОТА № 10
ТЕМА : ФОРМА “ДОЛГИ”
ЦЕЛЬ РАБОТЫ : Приобретение навыков создания иерархических списков.
ТЕОРЕТИЧЕСКИЕ ЗНАНИЯ : Создание иерархических списков. Обновление
данных. Выполнение исполняемых запросов. Отключение сообщений

ФОРМА “ДОЛГИ”
Форма Долги отображается при нажатии кнопки Долги на формах Главная, Оценки и
предназначена для отображения задолженностей студентов на текущую дату.

Форма Долги содержит подчинённую форму ДолгиГруппы, которая основана на запросе


ДолгиКоличество и связана с основной формой по значению полей КодПолугодия и КодГруппы.

Форма ДолгиГруппы содержит подчинённую форму ДолгиСтудента, которая основана на запросе


ДолгиГруппы и связана с основной формой по значению полей КодСтудента.
2
Системы управления базами данныхЛабораторная работа № 10
ЗАПРОСЫ ФОРМЫ “ДОЛГИ”
Запрос ДолгиСеместра
Запрос предназначен для отображения всех дисциплин, которые студенты выбранной группы
должны сдать в выбранном семестре до текущей даты.
На базе таблиц Студенты, Оценки и Дисциплины создайте запрос ДолгиСеместра, содержащий
поля: КодПлана, Предмет, КодПреподавателя, КодГруппы и ДатаКонтроля.

Поле Таблица Вывод на экран Условие отбора


КодПлана План Да
Предмет Предметы Да
КодПреподавателя Дисциплины Да
КодГруппы Дисциплины Нет [Forms]![Главная]![КодГруппы]
ДатаКонтроля Дисциплины Нет <Now()

Запрос ДолгиВсе
Запрос должен содержать столько записей, сколько оценок должны получить все студенты по всем
дисциплинам в выбранном семестре.
На базе запросов ДолгиСеместра и СтудентыГруппы создайте запрос ДолгиВсе, содержащий
поля: Код, Предмет, КодПреподавателя, КодПлана, ФИО, КодСтудента и КодГруппы.

Поле Таблица
Код: [КодСтудента] * 10000 + [КодПлана]
Предмет ДолгиСеместра
КодПреподавателя ДолгиСеместра
КодПлана ДолгиСеместра
ФИО СтудентыГруппы
КодСтудента СтудентыГруппы
КодГруппы СтудентыГруппы
Обратите внимание на то, что запросы, на которых основан запрос ДолгиВсе, не связаны между
собой. В этом случае записи “перемножаются” – если в группе 20 студентов, а в плане семестра 10
дисциплин, то запрос будет содержать 120 записей.
3
Системы управления базами данныхЛабораторная работа № 10
Другой особенностью запроса ДолгиВсе является наличие вычисляемого поля Код: [КодСтудента]
* 10000 + [КодПлана]. Нам необходимо будет связать записи запроса ДолгиВсе с оценками,
полученными студентами. Осуществить такую связь целесообразно с помощью комбинированного ключа
Код, значение которого будет уникальным при условии: КодПлана < 10000.
Запрос ДолгиУдовлет
Запрос должен содержать положительные оценки студентов выбранной группы.
На базе таблиц Оценки, Дисциплины, Состав, ТипыОценок и Студенты создайте запрос
ДолгиУдовлет, содержащий поля: Код, КодДисциплины, КодПлана, КодСтудента, КодГруппы и
Удовлет.

Поле Таблица Условие отбора


Код: [КодСтудента] * 10000 + [КодПлана]
КодДисциплины Оценки
КодПлана Дисциплины
КодСтудента Оценки
КодГруппы Состав [Forms]![Главная]![КодГруппы]
Удовлет ТипыОценок 1

Запрос ДолгиГруппы
Запрос должен содержать список студентов и дисциплин, по которым они имеют академические
задолженности.
На базе запросов ДолгиВсе и ДолгиУдовлет создайте запрос ДолгиГруппы, содержащий поля:
ФИО, КодСтудента, Предмет, КодГруппы, КодПреподавателя и Код.
4
Системы управления базами данныхЛабораторная работа № 10

Поле Таблица Вывод на экран Условие отбора


ФИО ДолгиВсе Да
КодСтудента ДолгиВсе Да
Предмет ДолгиВсе Да
КодГруппы ДолгиВсе Да
КодПреподавателя ДолгиВсе Да
Код ДолгиУдовлет Нет Is Null

Запрос ДолгиКоличество
Запрос предназначен для отображения студентов выбранной группы, которые имеют академические
задолженности в выбранном полугодии, подсчитывает количество задолженностей и сортирует студентов
по алфавиту.
На базе запроса ДолгиГруппы создайте запрос ДолгиКоличество, содержащий поля:
КодСтудента, ФИО, Количество и КодГруппы.
Поле Групповая операция Сортировка
КодСтудента Группировка
ФИО Группировка по возрастанию
Количество: КодСтудента Count
КодГруппы Группировка

Запрос ПреподавателиИнициалы
Запрос предназначен для отображения фамилий преподавателей и их инициалов.
На базе таблицы Преподаватели создайте запрос ПреподавателиИнициалы, содержащий поля:
КодПреподавателя и ФИО. Записи должны быть отсортированы по алфавиту.
Поле Сортировка
КодПреподавателя
ФИО: [Фамилия] & "U" & Mid([Имя];1;1) & "." & Mid([Отчество];1;1) & "." по возрастанию
Запрос используется в качестве источника строк для поля со списком КодПреподавателя в формах
Дисциплины и Долги.

МОДУЛЬ ФОРМЫ ОЦЕНКИСТУДЕНТОВ


Private Sub ОбновлениеГруппы()
Me.КодГруппы.Requery
Me.КодГруппы = DLookup("[КодГруппы]", "ИерархияГруппы")
Forms.Главная.КодГруппы = Me.КодГруппы
End Sub
Private Sub ОпределениеКурса()
Dim Критерий As String
Критерий = "КодГруппы=Forms!Главная!КодГруппы"
Forms.Главная.Курс = DLookup("[Курс]", "Группы", Критерий)
Forms.Главная.КодОтделения = DLookup("[КодОтделения]", "Группы", Критерий)
End Sub
Private Sub Form_Load()
ОпределениеКурса
5
Системы управления базами данныхЛабораторная работа № 10
End Sub
Private Sub КодГода_Change()
Forms.Главная.КодГода = Me.КодГода
ОбновлениеГруппы
ОпределениеКурса
End Sub
Private Sub КодПолугодия_Change()
Forms.Главная.КодПолугодия = Me.КодПолугодия
End Sub
Private Sub КодСпециальности_Change()
Forms.Главная.КодСпециальности = Me.КодСпециальности
ОбновлениеГруппы
ОпределениеКурса
End Sub
Private Sub КодГруппы_Change()
Forms.Главная.КодГруппы = Me.КодГруппы
ОпределениеКурса
End Sub
Private Sub КнопкаОценки_Click()
DoCmd.OpenForm "Оценки"
DoCmd.Close acForm, "Долги"
End Sub
Private Sub КнопкаЗакрыть_Click()
DoCmd.Close
End Sub

КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Создание иерархических списков.
Для создания иерархических списков, которые прогрессируют по вертикали или по горизонтали, можно
создать графический элемент SmartArt, использующий макет иерархии, например Иерархия с меткой.
Иерархия представляет собой ряд упорядоченных групп людей или элементов в системе. Используя
графический элемент SmartArt в Excel, Outlook, PowerPoint или Word, вы можете создать иерархию и
включить ее в электронную почту, сообщение электронной почты, презентацию или документ.

2. Обновление данных.
При совместном доступе к базе данных по сети Microsoft Access обновляет информацию через
заданные промежутки времени. Чтобы просмотреть последние данные, обновите записи в
представлении таблицы или формы, а на вкладке "Главная" нажмите кнопку "Обновить >обновить". В
процессе обновления обновляются существующие данные в таблице или форме, а также не
переупоряджаются записи, не отображаются новые записи, а также удаляются все удаленные записи
или записи, которые больше не соответствуют указанным условиям. Для более детального или
тщательного обновления используйте макрос для повторного получения данных.

3. Выполнение исполняемых запросов.


Запрос — это набор инструкций, которые можно использовать для работы с данными. Для выполнения
этих инструкций нужно выполнить запрос. Помимо возврата результатов (которые можно сортировать,
группировать или фильтровать), запрос также может создавать, копировать, удалять и изменять
данные.
6
Системы управления базами данныхЛабораторная работа № 10

4. Отключение сообщений.
Существует два основных способа отключить сообщения с запросом на подтверждение действия для
набора задач: с помощью макроса и с помощью модуля VBA. В любом случае с помощью кода можно
отключить предупреждения, выполнить набор задач, а затем снова включить их. Код можно
прикрепить к событию, такому как "Событие щелчка кнопки" или "Открыть событие формы".
Модуль прикрепляются к событию, и когда происходит событие, запускается модуль. Например, можно
прикрепить модуль к событию On Open для формы. Когда откроется форма, модуль будет открыт.

Вам также может понравиться