Ознакомление со средой MS Access, создание таблиц и запросов, формы, отчеты и макросы, страница 14

Аналогично создайте поле со списком Пол в форме Поселение в общежитие. При этом рекомендуется из запроса в свойстве Источник срок убрать ключевой столбец, и убрать наличие повторяющихся значений поля введением конструкции DISTINCT в оператор SELECT.

Если возникают проблемы со сформированным списком, необходимо сделать некоторые коррективы. Для конечного доведения списка в его свойствах надо настроить поля Источник срок и Присоединенный столбец. Для того, чтобы открыть свойства необходимо в конструкторе щелкнуть левой клавишей мыши, когда ее курсор находится на элементе Поле со списком, в контекстном меню выбрать команду Свойства. Следует убедиться, что номер присоединенного столбца совпадает с сохраняемым номером поля в запросе, который используется как Источник срок для списка.

С помощью полей со списком можно облегчить некоторые функции взаимодействия пользователя с базой данных. Например, в данной форме удобно было бы выбирать номер комнаты, подходящей по некоторым критериям: нелогично селить вместе студентов разного пола; нельзя поселить студента в комнату, в которой нет свободных мест. Таким образом, список предлагаемых комнат должен быть сформирован с помощью запроса. Подобный запрос в данной базе данных есть — Характеристика комнат, необходимо только его доработать, связав с формой  Поселение в общежитие. Для этого необходимо открыть запрос в режиме конструктора и в строке Условие отбора в столбце Пол сформировать выражение [Forms]![Поселение в общежитие]![Пол] Or Is Null, а в строке Условие отбора в столбце Свободных сформировать выражение > 0. Далее необходимо открыть форму в режиме конструктора, убрать поле № комнаты, щелкнуть на панели инструментов на элементе Поле со списком, и затем щелкнуть на форме. Запустится мастер создания полей со списком. Необходимо настроить поле со списком, выбрав в качестве источника данных запрос  Характеристика комнат, выбрав все поля из данного запроса, настроив их ширину, и сохранив значение поля запроса № комнаты в поле формы № комнаты. Если сейчас посмотреть, как работает данное поле со списком, можно увидеть, что один раз оно срабатывает правильно, а потом список не обновляется. Для постоянного обновления списка необходимо открыть свойства поля со списком, открыть закладку События, создать процедуру обработки события Вход, в которую написать оператор <Имя поля со списком> .Requery.