Запрос ОценкиДобавлениеВсем
Запрос предназначен для добавления выбранной оценки всем студентам, не имеющим оценки по выбранной дисциплине.
На базе запроса ОценкиДолжники создайте создайте запрос ОценкиДобавлениеВсем, содержащий поля: КодСтудента, Дата, КодДисциплины и КодОценки. Запрос должен добавлять в таблицу Оценки выбранную оценку по выбранной дисциплине всем студентам. Значения полей считываются из подчинённых форм формы Оценки.
Поле | Таблица | Добавление |
КодСтудента: [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
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
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.Создание иерархических списков.
2.Обновление данных.
3.Выполнение исполняемых запросов.
4.Отключение сообщений.