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

1

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

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

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

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


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

Подчинённая форма ОценкиДисциплины содержит подчинённые формы Должники, Оценки,


ОценкиИтого которая основаны на запросах ОценкиДолжники, ОценкиСтудентов,
ОценкиСтудентовИтого соответственно и связаны с основной формой ОценкиДисциплины по
значению поля КодДисциплины.
2
Системы управления базами данныхЛабораторная работа № 9

ЗАПРОСЫ ФОРМЫ “ОЦЕНКИ”


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

Поле Сортировка
КодСтудента
ФИО: [Фамилия] & "U" & [Имя] & "U" & [Отчество] по возрастанию
КодОценки по возрастанию
3
Системы управления базами данныхЛабораторная работа № 9
Поле Сортировка
КодДисциплины
ДатаСдачи
Опоздание: DateDiff("d";[ДатаКонтроля];[ДатаСдачи])

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

Запрос ОценкиСтудентовВсего
Запрос предназначен для отображения максимальной оценки, полученной студентом по выбранной
дисциплине, количество пересдач (если пересдач не было, то поле пустое) и максимальное опоздание
сдачи экзамена или зачёта (если экзамен сдан вовремя, то поле пустое). Кроме того, Запрос должен
содержать поля, позволяющие подсчитать статистику.
На базе запроса ОценкиСтудентовВсего и таблицы ТипыОценок создайте запрос
ОценкиСтудентовИтого, содержащий поля: ФИО, КодДисциплины, КодОценки, Оценка, Число,
Отлично, Хорошо, Удовлет, Неудовл, Явился, Успеваемость, Опоздание и Количество. Записи должны
быть отсортированные по значению полей ФИО.

Поле Таблица Сортировка


ФИО ОценкиСтудентовВсего по возрастанию
КодДисциплины ОценкиСтудентовВсего
КодОценки ОценкиСтудентовВсего
Оценка ТипыОценок
Число ТипыОценок
Отлично ТипыОценок
Хорошо ТипыОценок
Удовлет ТипыОценок
Неудовл ТипыОценок
Явился ТипыОценок
Успеваемость ТипыОценок
Качество ТипыОценок
Опоздание: IIf([Опозд]=0;Null;[Опозд])
Количество: IIf([Колич]=1;Null;[Колич]-1)

Запрос ОценкиПоложительные
Запрос предназначен для отображения студентов, имеющих положительные оценки по выбранной
дисциплине.
4
Системы управления базами данныхЛабораторная работа № 9
На базе таблиц Оценки и ТипыОценок создайте запрос ОценкиПоложительные, содержащий
поля: КодСтудента, КодДисциплины и Успеваемость. Запрос должен содержать только студентов,
имеющих положительные оценки по выбранной дисциплине ([Forms] ! [Оценки] ! [Дисциплины] .
[Form] ! [КодДисциплины]).

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


КодСтудента Оценки
КодДисциплин Оценки
[Forms]![Оценки]![Дисциплины].[Form]![КодДисциплины]
ы
Успеваемость ТипыОценок 1

Запрос ОценкиДолжники
Запрос предназначен для отображения студентов, не имеющих положительных оценок по выбранной
дисциплине. Запрос также используется в качестве источника данных при добавлении оценок всем
должникам.
На базе таблиц Оценки и ТипыОценок создайте запрос ОценкиПоложительные, содержащий
поля: КодСтудента, КодДисциплины и Успеваемость. Запрос должен содержать только студентов,
имеющих положительные оценки по выбранной дисциплине ([Forms] ! [Оценки] ! [Дисциплины] .
[Form] ! [КодДисциплины]).

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


КодСтудента Оценки
КодДисциплин Оценки
[Forms]![Оценки]![Дисциплины].[Form]![КодДисциплины]
ы
Успеваемость ТипыОценок 1

Запрос ОценкиДобавление
Запрос предназначен для добавления выбранной оценки выбранному студенту по выбранной
дисциплине в выбранный срок.
Создайте запрос ОценкиДобавление, содержащий поля: КодСтудента, Дата, КодДисциплины и
КодОценки. Запрос должен добавлять в таблицу Оценки одну оценку по выбранной дисциплине
выбранному студенту. Значения полей считываются из подчинённых форм формы Оценки.
Поле Добавление
КодСтудента :
[Forms]![Оценки]![Дисциплины].[Form]![Должники].[Form]![Код КодСтудента
Студента]
5
Системы управления базами данныхЛабораторная работа № 9
Поле Добавление
Дата :
[Forms]![Оценки]![Дисциплины].[Form]![Должники].[Form]![Дат ДатаСдачи
аСдачи]
КодДисциплины :
КодДисциплины
[Forms]![Оценки]![Дисциплины].[Form]![КодДисциплины]
КодОценки :
[Forms]![Оценки]![Дисциплины].[Form]![Должники].[Form]![Код КодОценки
Оценки]

Запрос ОценкиДобавлениеВсем
Запрос предназначен для добавления выбранной оценки всем студентам, не имеющим оценки по
выбранной дисциплине.
На базе запроса ОценкиДолжники создайте создайте запрос ОценкиДобавлениеВсем,
содержащий поля: КодСтудента, Дата, КодДисциплины и КодОценки. Запрос должен добавлять в
таблицу Оценки выбранную оценку по выбранной дисциплине всем студентам. Значения полей
считываются из подчинённых форм формы Оценки.
Поле Таблица Добавление
КодСтудента:
[Forms]![Оценки]![Дисциплины].[Form]![Должник ОценкиДолжники КодСтудента
и].[Form]![КодСтудента]
Дата:
[Forms]![Оценки]![Дисциплины].[Form]![Должник ДатаСдачи
и].[Form]![ДатаСдачи]
КодДисциплины:
[Forms]![Оценки]![Дисциплины].[Form]![КодДисц КодДисциплины
иплины]
КодОценки:
[Forms]![Оценки]![Дисциплины].[Form]![Должник КодОценки
и].[Form]![КодОценки]

Запрос ОценкиТипа
Запрос предназначен для отображения оценок, определённых для типа контроля (экзамен или зачёт)
установленного для выбранной дисциплины. Запрос используется в качестве источника строк для поля
ТипОценки.
На базе таблицы ТипыОценок создайте создайте запрос ОценкиТипа, содержащий поля:
КодОценки, Оценка и КодКонтроля. Запрос должен содержать только оценки, определённых для типа
контроля (экзамен или зачёт) установленного для выбранной дисциплины ([Forms] ! [Оценки] !
[Дисциплины] . [Form] ! [КодКонтроля]).
Поле Сортировка Условие отбора
КодОценки по убыванию
Оценка
КодКонтроля [Forms]![Оценки]![Дисциплины].[Form]![КодКонтроля]

МОДУЛЬ ФОРМЫ “ОЦЕНКИ”


Private Sub ОбновлениеГруппы()
Me.КодГруппы.Requery
Me.КодГруппы = DLookup("[КодГруппы]", "ИерархияГруппы")
Forms.Главная.КодГруппы = Me.КодГруппы
End Sub
Private Sub ОпределениеКурса()
Dim Критерий As String
Критерий = "КодГруппы=Forms!Главная!КодГруппы"
Forms.Главная.Курс = DLookup("[Курс]", "Группы", Критерий)
Forms.Главная.КодОтделения = DLookup("[КодОтделения]", "Группы", Критерий)
End Sub
6
Системы управления базами данныхЛабораторная работа № 9
Private Sub Form_Load()
ОпределениеКурса
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 Form_Current()
On Error Resume Next
Оценки.Form.КодСтудента.Requery
Оценки.Form.КодОценки.Requery
Должники.Form.КодОценки.Requery
Должники.Form.КодОценки = DLookup("[КодОценки]", "ОценкиТипа")
Должники.Form.ДатаСдачи.Value = ДатаКонтроля
End Sub
Private Sub КнопкаПредыдущая_Click()
On Error Resume Next
DoCmd.GoToRecord , , acPrevious
End Sub
Private Sub КнопкаСледующая_Click()
On Error Resume Next
DoCmd.GoToRecord , , acNext
End Sub
Модуль формы Должники
Private Sub ФИО_Click()
ФИО.SelStart = 0
ФИО.SelLength = Len(ФИО)
End Sub
Private Sub ОбновитьПодчинённыеФормы()
Forms.Оценки.Дисциплины.Form.Должники.Requery
Forms.Оценки.Дисциплины.Form.ОценкиИтого.Requery
Forms.Оценки.Дисциплины.Form.Оценки.Requery
7
Системы управления базами данныхЛабораторная работа № 9
End Sub
Private Sub КнопкаДобавить_Click()
DoCmd.SetWarnings False
DoCmd.OpenQuery "ОценкиДобавление"
DoCmd.SetWarnings True
ОбновитьПодчинённыеФормы
End Sub
Private Sub КнопкаДобавитьВсе_Click()
DoCmd.SetWarnings False
DoCmd.OpenQuery "ОценкиДобавлениеВсем"
DoCmd.SetWarnings True
ОбновитьПодчинённыеФормы
End Sub
Private Sub ФИО_DblClick(Cancel As Integer)
КнопкаДобавить_Click
End Sub

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


Private Sub Form_AfterDelConfirm(Status As Integer)
Forms.Оценки.Дисциплины.Form.Должники.Requery
End Sub
Private Sub КодОценки_Change()
DoCmd.SetWarnings False
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
DoCmd.SetWarnings True
Forms.Оценки.Дисциплины.Form.ОценкиИтого.Requery
Forms.Оценки.Дисциплины.Form.Должники.Requery
End Sub
Private Sub Пересдача_Click()
AllowAdditions = Пересдача
End Sub

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

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

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


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

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

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