Создание базы данных
141
Рис. 3.43.
Определение имени поля со списком и проверки связной целостности данных
Рис. 3.44.
Ввод значения в поле выбором из списка
Если между таблицами не было установлено параметра обеспечения целостности
связи таблиц, в поле со списком можно вводить значения, не предусмотренные
в списке.
В режиме таблицы предоставляется возможность добавить новое поле с построени-
ем для него списка и установлением соответствующего отношения между таблица-
ми и нельзя изменить существующее поле на поле со списком.
Создание поля со списком в режиме таблицы целесообразно
при первоначальной
разработке структуры таблицы в этом режиме. В противном случае поле, такое как
142
Глава 3
НОМ_ДОГ
, являющееся полем связи с таблицей ДОГОВОР, уже будет создано в таб-
лице, и после создания нового поля со списком его надо будет удалить. В приве-
денном примере это можно сделать только в режиме конструктора, т. к. поле
НОМ_ДОГ
является частью первичного ключа таблицы. В режиме конструктора поле
может быть преобразовано в поле со списком и после разработки структуры таб-
лицы.
Если переключиться в режим конструктора (рис. 3.45), то можно увидеть парамет-
ры списка, подготовленные мастером в свойствах нового
поля на вкладке
Подста-
новка
(Lookup).
Рис. 3.45.
Свойства поля со списком для выбора номера договора
Создание поля со списком в режиме конструктора
Выберите таблицу ПОСТАВКА_ПЛАН в области навигации и в контекстном меню
таблицы выполните команду
Конструктор
(Design View). Установите курсор
в поле
НОМ_ДОГ
на столбце
Тип данных
(Data Type), откройте список и выберите
строку
Мастер подстановок
(Lookup Wizard).
Откроется окно мастера
Создание
подстановки
(Create Lookup) (см. рис. 3.40). Работа с мастером, рассмотренная в
предыдущем разделе, приведет к преобразованию поля
НОМ_ДОГ
в поле со списком.
Параметры списка, подготовленные мастером, отобразятся в свойствах поля
НОМ_ДОГ
на вкладке
Подстановка
(Lookup) (см. рис. 3.45).
З
АМЕЧАНИЕ
Если в базе данных уже создана схема данных и установлена связь таблицы
ПОСТАВКА_ПЛАН с таблицей ДОГОВОР, перед
изменением типа данных поля
НОМ_ДОГ
нужно удалить эту связь.
Создание базы данных
143
Теперь при вводе данных в таблицу ПОСТАВКА_ПЛАН можно воспользоваться
созданным списком (см. рис. 3.44).
Ввод в поле
НОМ_ДОГ
ограничивается значениями из списка только в случае, если
при работе мастера или в схеме вручную были проставлены параметры обеспече-
ния целостности связи таблиц. Однако, если при определении параметров списка на
вкладке
Подстановка
(Lookup) в окне конструктора таблицы (см. рис. 3.45) вы-
брать в строке
Ограничиться
списком
(Limit to List) значение
Да
,
ввод значений,
не предусмотренных в списке, сделается в любом случае невозможным. В случае
отклонения от значений списка система выдаст сообщение, показанное на рис. 3.46.
Таким образом, пользователь вынужден будет придерживаться только значений,
представленных в списке, и в подчиненную таблицу будут введены только связан-
ные записи. То есть, использование списков не только обеспечивает удобный ввод,
но и позволяет избежать многих ошибок.
Рис. 3.46.
Сообщение о неверно введенном значении
Задание 3.4. Создание поля со списком
для существующего поля
Преобразуйте в таблице ПОСТАВКА_ПЛАН поле
КОД_ТОВ
(код товара) в поле со
списком. Для этого откройте таблицу в режиме конструктора, установите курсор
в поле
КОД_ТОВ
на столбце
Тип данных
(Data Type) и в списке этого столбца выбе-
рите строку
Мастер подстановок
(Lookup Wizard). В диалоге с мастером выберите
главную по отношению к таблице ПОСТАВКА_ПЛАН
таблицу ТОВАР, на основе
данных которой создается список, и поля, включаемые в список:
КОД_ТОВ
— код то-
вара и
НАИМ_ТОВ
— наименование товара. Кроме того, оставьте, как предлагает мас-
тер, помеченным флажок
Скрыть ключевой столбец (рекомендуется)
(Hide key
column (recommended)). В результате работы мастера таблица должна приобрести
вид, показанный на рис. 3.47.
При
выборе параметра
Скрыть ключевой столбец (рекомендуется)
для первого
столбца списка устанавливается ширина, равная нулю. При этом параметр
Огра-
ничиться
списком
(Limit to List) может принимать только одно значение —
Да
(рис. 3.48).
Определение поля со списком с такими параметрами приводит к отображению
в поле
КОД_ТОВ
вместо значений ключевого поля значений второго поля списка —
поля
НАИМ_ТОВ
(наименование товара), взятого из главной таблицы ТОВАР. Тем не
менее, выбор наименования товара приведет к вводу соответствующего значения