Запрос ДисциплиныГруппы
Запрос предназначен для отображения и редактирования плана группы. На базе таблиц Дисциплины, План, Семестры, Контроль и Предметы создайте запрос ДисциплиныГруппы, содержащий поля: КодДисциплины, КодПредмета, Предмет, Контроль, Часы, КодПреподавател, ДатаКонтроля, КодПолугодия, КодГруппы, КодКонтроля и Семестр. Записи должны быть отсортированные по значению поля Предмет.
Запрос используется также в форме Оценки. Запрос ПланСессия Запрос предназначен для вычисления даты начала экзаменационной сессии в выбранном полугодии выбранного учебного года. Вычисленное значение будет использовано в качестве значения по умолчанию для поля ДатаКонтроля в таблице Дисциплины. Количество месяцев между началом учебного года и началом экзаменационной сессии указано в поле Месяцы таблицы Полугодия. На базе таблиц УчебныйГод и Полугодия создайте запрос ПланСессия, содержащий поля: Сессия, КодГода и КодПолугодия. В запросе должен быть отображён только выбранный учебный год ([Forms]![Дисциплины]![КодГода]), выбранное полугодие ([Forms]![Дисциплины]![КодПолугодия]) и вычислена дата начала сессии. Обратите внимание на то, что таблицы, на которых основан запрос, не связаны между собой, а запрос будет содержать одну запись.
Запрос ПланСеместра Запрос предназначен для формирования перечня предметов, включённых в план специальности, на которой находится выбранная группа, в выбранном полугодии. На базе таблиц План, Семестры и ПланСессия создайте запрос ПланСеместра, содержащий поля: Сессия и КодПлана. В запросе должен быть отображены только предметы, включённые в план выбранных специальности ([Forms]! [Дисциплины]! [КодСпециальности]), отделения ([Forms]! [Главная]! [КодОтделения]) курса ([Forms]! [Главная]! [Курс]) и полугодия ([Forms]! [Дисциплины]! [КодПолугодия]). Кроме того, запрос должен содержать дату начала сессии в выбранном полугодии соответствующего учебного года.
Запрос ПланГруппы Запрос предназначен для формирования перечня дисциплин, включённых в план выбранной группы в выбранном полугодии. На базе таблиц План, Семестры и Дисциплины создайте запрос ПланГруппы, содержащий поле КодПлана. В запросе должен быть отображены только дисциплины, включённые в план выбранной группы ([Forms]! [Дисциплины]! [КодГруппы]) в выбранном полугодии ([Forms]! [Дисциплины]! [КодПолугодия]).
Запрос ПланОтсут Запрос предназначен для формирования списка дисциплин, включённых в план выбранной специальности, но отсутствующих в плане выбранной группы. На базе запросов ПланСеместра и ПланГруппы создайте запрос ПланОтсут, содержащий поле КодПлана и Сессия. В запросе должны быть отображены только дисциплины, включённые в план выбранной специальности, но отсутствующих в плане выбранной группы. Для создания запроса целесообразно в диалоговом окне Новый запрос выбрать мастер Записи без подчинённых.
Запрос ПланДобавление Запрос предназначен для добавления дисциплин, включённых в план выбранной специальности, но отсутствующих в плане выбранной группы. На базе запроса таблиц ПланОтсут создайте запрос ПланДобавление, добавляющий в план группы отсутствующие дисциплины. В запросе должны быть отображены только дисциплины, включённые в план выбранной специальности, но отсутствующих в плане выбранной группы.
Модуль формы “Дисциплины” Private Sub ОбновлениеГруппы() Me.КодГруппы.Requery Me.КодГруппы = DLookup("[КодГруппы]", "ИерархияГруппы") Forms.Главная.КодГруппы = Me.КодГруппы End Sub Private Sub ОпределениеКурса() Dim Критерий As String Критерий = "КодГруппы=Forms!Главная!КодГруппы" Forms.Главная.Курс = DLookup("[Курс]", "Группы", Критерий) Forms.Главная.КодОтделения = DLookup("[КодОтделения]", "Группы", Критерий) End Sub Private Sub ОпределениеПределовДатыКонтроля() On Error Resume Next Dim Критерий As String Dim Дата As Date Критерий = "КодГода=Forms!Главная!КодГода" Дата = DLookup("[Начало]", "УчебныйГод", Критерий) Me.Список.Form.ДатаКонтроля.MinDate = Дата End Sub 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 КнопкаДобавитьДисциплины_Click() DoCmd.SetWarnings False DoCmd.OpenQuery "ПланДобавление" DoCmd.SetWarnings True Me.Список.Requery End Sub Private Sub КнопкаПлан_Click() DoCmd.Close DoCmd.OpenForm "План" End Sub Private Sub КнопкаОценки_Click() DoCmd.Close DoCmd.OpenForm "Оценки" End Sub Private Sub КнопкаЗакрыть_Click() DoCmd.Close End Sub Private Sub Form_Unload(Cancel As Integer) DoCmd.SetWarnings False DoCmd.OpenQuery "ДипломСоздать" DoCmd.SetWarnings True End Sub Модуль формы “ДисциплиныГруппы” Модуль формы ДисциплиныГруппы содержит команды проверки даты экзамена или зачёта и открытия формы Преподаватели. Private Sub ДатаКонтроля_Change() Dim Критерий As String Dim Дата As Date КодПреподавателя.SetFocus Критерий = "КодГода=Forms!Главная!КодГода" Дата = DLookup("[Конец]", "УчебныйГод", Критерий) While ДатаКонтроля > Дата ДатаКонтроля = DateAdd("yyyy", -1, ДатаКонтроля) Wend End Sub Private Sub КнопкаПреподаватели_Click() DoCmd.OpenForm "Преподаватели" End Sub Контрольные вопросы 1. Создание иерархических списков. 2. Обновление данных. 3. Вычисления в форме.
|