Поиск в связанных таблицах

 

Итак, вы увидели, как связи облегчают просмотр и редактирование ваших записей. А как они помогают при первоначальном добавлении записи? Связи обычно основываются на бесполезном значении типа Счетчик. Когда вы создаете новую запись о кукле, то, возможно, не знаете, что компании Bobelle House O’Dolls соответствует код 3408. Программа Access не даст вам ввести идентификационный номер изготовителя, не связанный ни с одной компанией-изготовителем, но не поможет выбрать нужный номер.

К счастью, у Access есть средство, способное помочь вам. В предыдущей главе вы узнали о подстановках (см. разд. "Создание простою списка подстановок, состоящего из констант" главы 4), функциональной возможности, снабжающей вас списком доступных значений столбца. При создании подстановки можно представить список констант или предложить список значений из другой таблицы. Вы могли бы создать подстановку для поля ManufacturerlD в таблице Dolls, использующую список значений ID, взятых из таблицы Manufacturers. Такой тип подстановки немного помогает — он предлагает список всех значений, которые можно использовать — но не решает главную проблему. А именно озадаченные пользователи, применяющие вашу БД, понятия не имеют о том, какой идентификационный номер принадлежит какой компании. Вам все-таки нужен способ отображения в списке подстановок имени изготовителя.

У списков подстановок, к нашей общей радости, есть такая возможность. Решение — создание подстановки, у которой несколько столбцов. Один столбец содержит информацию (в данном случае имя изготовителя), которая выводится для пользователя вашей БД. В другом столбце находятся данные, которые вы хотите использовать при выборе значения (в данном случае идентификационный номер изготовителя).

 

 

Примечание

Программа Access становится немного странной при переходе к подстановкам. Она ждет, что вы добавите список подстановок, а потом связь. (В действительности, когда создается подстановка, использующая таблицу, Access создает связь автоматически.) Таким образом, если вы

 

самостоятельно выполняете практические задания, используя предложенные примеры, удалите связь между таблицами Dolls и Manufacturers (как описано в разд. "Редактирование связей" ранее в этой главе), прежде чем двигаться дальше.

 

Далее приведены действия, необходимые для создания списка подстановок, связывающего две таблицы — Dolls и Manufacturers.

1.    Откройте таблицу-потомок в Конструкторе.
В данном примере это таблица Dolls.

2.    Выберите поле, связывающее ее с таблицей-родителем, в столбце Тип данных выберите вариант Мастер подстановок.

В предлагаемом примере поле, которое вам нужно, — ManufacturerID.

3. Выберите переключатель Объект "столбец подстановки" будет использовать значения из таблицы или запроса ("I want the lookup column to look up the values in a table or query") и щелкните мышью кнопку Далее.

На экране появится список всех таблиц вашей БД за исключением текущей таблицы.

4. Выберите таблицу-родитель и нажмите кнопку Далее.

В данном случае вам нужна таблица Manufacturers. После того как вы ее выбрали и перешли к следующему окну мастера, вы увидите на экране список всех полей этой таблицы.

5. Добавьте поле, которое используется для связи, и еще одно, более информативное поле в список Выбранные поля (Selected Fields) (рис. 5.11). Для продолжения щелкните мышью кнопку Далее.

В данном примере вам нужно добавить поля ID и Manufacturer.

Рис. 5.11. Секрет хорошей подстановки — выбор двух порций информации, первичного ключа (в данном случае поля ID) и более информативного значения (названия компании-изготовителя). Данные из поля ID вы должны сохранить в записи о кукле, а значение поля Manufacturer вы отобразите в списке подстановки для того, чтобы облегчить правильный выбор компании-изготовителя

 

Подсказка

Иногда может понадобиться несколько полей для описательной информации. Например, можно использовать поля FirstName и LastName из таблицы FamilyRelatives (члены семьи). Но не включайте слишком много информации, иначе список подстановки станет необъемным из-за включений в него всех этих сведений. Это выглядит неестественно.

 

6.   Выберите поле, применяемое для сортировки списка подстановки (рис. 5.12), и щелкните мышью кнопку Далее.

В нашем примере список подстановки лучше всего отсортировать в соответствии со значениями поля Manufacturer.

Рис. 5.12. Отсортировать список подстановки очень важно для того, чтобы пользователь мог быстро найти нужное значение

7.    В следующем окне мастера показано предварительное представление вашего списка подстановки (рис. 5.13). Убедитесь в том, что установлен флажок Скрыть ключевой столбец (Hide key column (recommended)), и затем щелкните мышью кнопку Далее. Несмотря на то, что у поля первичного ключа есть значение, связывающее вместе две таблицы, для пользователя, работающего с БД, оно значит не слишком много. Ему гораздо важнее другое, описательное поле.

8.     Выберите название столбца подстановки.

Обычно естественней всего сохранить название поля, использующего подстановку (в данном случае ManufacturerID).

На последнем этапе вы можете также выбрать режим, называемый Разрешить несколько значений (Allow Multiple Values). Если установить этот флажок, в списке отображается флажок рядом с каждым значением, поэтому можно одновременно выбрать несколько элементов списка. (В этом примере можно создать запись о кукле с несколькими изготовителями.) Вы узнаете больше о варианте Разрешить несколько значений в разд. "Многозначные поля "далее в этой главе.

 

 

Рис. 5.13. Здесь показан список подстановки, содержащий имя изготовителя (поле Manufacturer) и скрывающий его идентификатор (поле ID)

9.  Щелкните мышью кнопку Готово (Finish).

Теперь программа Access формирует список подстановки для поля и предлагает сохранить таблицу. После этого Access создает связь между двумя таблицами, связанными вашим столбцом подстановки. В данном случае программа устанавливает отношение "родитель—потомок" между таблицами Manufacturers и Dolls, так же как вы делали это самостоятельно (см. разд. "Определение отношения "ранее в этой главе).

 

 

Примечание

Созданная программой Access связь не обеспечивает ссылочной целостности, поскольку программа не знает, соответствуют ли ваши записи этому жесткому стандарту. В таблице может быть кукла, указывающая на несуществующего изготовителя. Если такая возможность кажется угрожающе нестрогой, можно отредактировать связь с помощью вкладки Схема данных (как описано в разд. "Редактирование связей" ранее в этой главе). Начните с добавления на вкладку обеих таблиц Dolls и Manufacturers. Затем щелкните правой кнопкой мыши линию связи между ними и выберите команду Изменить связь. В заключение установите флажок Обеспечение целостности данных и щелкните мышью кнопку ОК.

 

 

Теперь, если отобразить таблицу Dolls в Режиме таблицы, можно использовать список подстановки во время редактирования и вставки записей (рис.5.14).

 

 

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100