Ленточная форма Анкета основана на запросе СтудентыУниверситета и содержит подчинённую форму Телефоны. Формы связаны по значению полей КодСтудента.
Форма содержит поля со списком: Имя (СтудентыИмя), Отчество (СтудентыОтчество), КодПола (Пол), КодГода (УчебныеГода), КодОбразования (Образование), КодСпециальности (Специальности). Свойство Значение по умолчанию поля со списком КодОбразования установлено равным DLookUp("КодОбразования";"Образование";"ПоУмолчанию=True").
Поля со списком Имя и Отчество содержат перечень имён и отчеств студентов, введённых в базу данных и зависит от значения поля Пол.
На базе таблицы Студенты создайте запрос СтудентыУниверситета, содержащий поля: КодСтудента, Фамилия, Имя, Отчество, ФИО, КодПола, Рождение, Адрес, КодОбразования, Возраст, КодГода, КодСпециальности. Записи должны быть отсортированы по значению поля ФИО.
Поле |
Сортировка |
КодСтудента |
|
Фамилия |
|
Имя |
|
Отчество |
|
ФИО:[Фамилия]&"U"&[Имя]&"U"&[Отчество] |
по возрастанию |
КодПола |
|
Рождение |
|
Адрес |
|
КодОбразования |
|
Возраст: DateDiff("yyyy"; [Рождение];Now()) |
|
КодГода |
|
КодСпециальности |
На базе таблицы Студенты создайте запрос СтудентыИмя, содержащий поле Имя. В запросе должны быть отображены только имена пола, указанного в форме Анкета. Записи должны быть сгруппированы по значению поля Имя и отсортированы по алфавиту.
Поле |
Групповая операция |
Сортировка |
Условие отбора |
Имя |
Группировка |
по возрастанию |
|
КодПола |
Условие |
[Forms]![Анкета]![КодПола] |
Модуль формы Анкета содержит команды обновления полей списком Имя и Отчество при переходе на другую запись и изменении пола студента. Кроме того, при входе в поля со списком – списки открываются.
Private Sub ОбновлениеСписковИмениОтчества()
Me.Отчество.Requery
Me.Имя.Requery
End Sub
Private Sub Form_Load()
Me.Рождение.MaxDate = DateAdd("yyyy", -14, Now())
Me.Рождение.MinDate = DateAdd("yyyy", -35, Now())
End Sub
Private Sub КодПола_Change()
If Me.КодПола.OldValue <> Me.КодПола.Value Then Имя = " " : Отчество = " "
ОбновлениеСписковИмениОтчества
End Sub
Private Sub Form_Current()
ОбновлениеСписковИмениОтчества
End Sub
Private Sub Имя_AfterUpdate()
ОбновлениеСписковИмениОтчества
End Sub
Private Sub Имя_Enter()
Me.Имя.Dropdown
End Sub
Private Sub КодСпециальности_Enter()
Me.КодСпециальности.Dropdown
End Sub
Private Sub Отчество_AfterUpdate()
ОбновлениеСписковИмениОтчества
End Sub
Private Sub Отчество_Enter()
Me.Отчество.Dropdown
End Sub
Private Sub КодПола_Enter()
Me.КодПола.Dropdown
End Sub
Private Sub Рождение_Change()
Me.КодГода.SetFocus
End Sub
Private Sub КодГода_Enter()
Me.КодГода.Dropdown
End Sub
Private Sub КодГода_Change()
Me.КодСпециальности.SetFocus
End Sub
Private Sub КнопкаНовая_Click()
DoCmd.GoToRecord , , acNewRec
End Sub
Private Sub КнопкаЗакрыть_Click()
DoCmd.Close
End Sub
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.