Создание иерархических списков (Лабораторная работа № 7), страница 4

Поле

Таблица

Удаление

Условие отбора

КодСтудента

Состав

Условие

[Forms]![Состав]![КодСтудентаГруппы]

КодГруппы

Состав

Условие

[Forms]![Состав]![КодГруппы]

Запрос СоставУдалениеВсех

Создайте запрос СоставУдалениеВсех, который удаляет из выбранной группы (поле КодГруппы в форме Состав) всех студентов. Запрос удаляет несколько записей из таблицы Состав.

Поле

Таблица

Удаление

Условие отбора

КодГруппы

Состав

Условие

[Forms]![Состав]![КодГруппы]

Модуль формы СОСТАВ

Модуль формы Состав содержит команды передачи значений управляющих полей на форму Главная и обновления списков. Включение студента в состав группы и его удаление из группы осуществляется за счёт запуска запросов на удаление и добавление записей в таблицу Состав. Поскольку перемещение студента не приводит к потере данных, 

Private Sub ОбновлениеГруппы()

КодГруппы.Requery

КодГруппы = DLookup("[КодГруппы]", "ИерархияГруппы")

Forms.Главная.КодГруппы = Me.КодГруппы

End Sub

Private Sub ОбновлениеСоставаСпециальности()

КодСтудентаСпец.Requery

End Sub

Private Sub ОбновлениеСоставаГруппы()

КодСтудентаГруппы.Requery

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 ДобавлениеСтудента()

If IsNull(Me.КодСтудентаСпец) Then Exit Sub

DoCmd.SetWarnings False

DoCmd.OpenQuery "СоставДобавление"

DoCmd.SetWarnings True

ОбновлениеСоставаСпециальности

ОбновлениеСоставаГруппы

End Sub

Private Sub КодСтудентаСпец_DblClick(Cancel As Integer)

ДобавлениеСтудента

End Sub

Private Sub КнопкаДобавить_Click()

ДобавлениеСтудента

Me.КодСтудентаСпец = DLookup("[КодСтудента]", "СтудентыБезГруппы")

Me.КодСтудентаСпец.SetFocus

End Sub

Private Sub КнопкаДобавитьВсех_Click()

DoCmd.SetWarnings False

DoCmd.OpenQuery "СоставДобавлениеВсех"

DoCmd.SetWarnings True

ОбновлениеСоставаСпециальности

ОбновлениеСоставаГруппы

End Sub

Private Sub УдалениеСтудента()

If IsNull(Me.КодСтудентаГруппы) Then Exit Sub

DoCmd.SetWarnings False

DoCmd.OpenQuery "СоставУдаление"

DoCmd.SetWarnings True

ОбновлениеСоставаСпециальности

ОбновлениеСоставаГруппы

End Sub

Private Sub КодСтудентаГруппы_DblClick(Cancel As Integer)

УдалениеСтудента

End Sub

Private Sub КнопкаУдалить_Click()

УдалениеСтудента

Me.КодСтудентаГруппы = DLookup("[КодСтудента]", "СтудентыГруппы")

Me.КодСтудентаГруппы.SetFocus

End Sub

Private Sub КнопкаУдалитьВсех_Click()

DoCmd.SetWarnings False

DoCmd.OpenQuery "СоставУдалениеВсех"

DoCmd.SetWarnings True

ОбновлениеСоставаСпециальности

ОбновлениеСоставаГруппы

End Sub

Private Sub КнопкаЗакрыть_Click()

DoCmd.Close

End Sub

Контрольные  вопросы

1.  Создание иерархических списков.

2.  Обновление данных.

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

4.  Отключение сообщений.