Запрос ОценкиДобавлениеВсем

Запрос предназначен для добавления выбранной оценки всем студентам, не имеющим оценки по выбранной дисциплине.

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

Поле Таблица Добавление
КодСтудента: [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.Отключение сообщений.