Связь таблиц
В предыдущем упражнении с помощью мастера подстановок была сформирована связь между двумя таблицами. Такая связь позволяет установить правила взаимодействия между таблицами. Список подстановок можно было организовать и без связи. Но представьте, что вы удалите из таблицы Контакты запись, на которую ссылаются некоторые записи таблицы Список. В такой ситуации останутся описания контактов, фамилии людей в которых потеряны. Наличие правильно организованной связи позволяет избежать подобных неприятностей.
Выберите команду Сервис
>
Схема данных (Tools
>
Relationships). Откроется окно, схематически изображающее связи базы данных. На рис. 16.11 видно, что линия связи соединяет поля Код_Контакты таблицы Контакты и Контакт таблицы Список.
Примечание
Данная связь соединяет ключевое и обычное поля. Это связь типа «один ко многим», когда одной записи таблицы Контакты может соответствовать несколько записей таблицы Список, но не наоборот.
![](image/uprazhnenie-5-svjaz-tablic_1.gif)
Рис.
16.11.
Схема данных
Для тренировки давайте удалим связь, а затем создадим ее заново.
Щелчком выделите линию связи.
Нажмите клавишу Delete. В ответ на появившийся запрос щелкните на кнопке Да. Связь исчезнет.
Поместите указатель мыши на пункт Код_Контакты таблицы Контакты.
Нажмите кнопку мыши и перетащите указатель на поле Контакт таблицы Список.
В открывшемся окне диалога щелкните на кнопке Создать. Связь появится вновь.
Чтобы настроить параметры связи, выполните следующие шаги.
Дважды щелкните на линии связи. Откроется окно диалога, показанное на рис. 16.12.
![](image/uprazhnenie-5-svjaz-tablic_2.gif)
Рис. 16.12.
Параметры связи
Примечание
Если таблицы, между которыми нужно организовать связь, отсутствуют, щелкните в окне Схема данных (Relationships) правой кнопкой мыши и выберите команду Добавить таблицу (Show Table). В открывшемся окне диалога выделяйте таблицы, которые нужно разместить в окне Схема данных и щелкайте на кнопке Добавить (Add). Получив все необходимые таблицы, закройте окно диалога кнопкой Закрыть (Close).
Установите флажок Обеспечение целостности данных (Enforce Referential Integrity). Этот режим не позволит Access оставлять в таблице Список записи, для которых нельзя подобрать запись таблицы Контакты с подходящим значением поля Код_Контакты.
Установите флажок Каскадное удаление связанных записей (Cascade Delete Related Records). Теперь при удалении записи таблицы Контакты (то есть удалении информации о конкретном человеке) будут удалены все соответствующие записи таблицы Список (то есть все описания контактов с этим человеком). Если указанный флажок сброшен, удаление тех записей таблицы Контакты, на которые ссылается хотя бы одна запись таблицы Список, запрещено.
Примечание
Установка флажка Каскадное обновление связанных полей приведет к тому, что при обновлении поля Код_Контакты таблицы Контакты будут автоматически обновляться одноименные поля в соответствующих записях таблицы Список.
Щелкните на кнопке ОК.
Закройте окно Схема данных.
В окне базы данных дважды щелкните на значке таблицы Контакты. В открывшемся окне таблицы видны небольшие знаки «плюс», расположенные в левой части записей. Их присутствие говорит о наличии связи ключевого поля таблицы с другой таблицей.
Щелкните на знаке «плюс» записи для Петра Петрова. Откроется вложенная таблица, содержащая те записи таблицы Список, значение поля Код_Кон-такты которых равно величине одноименного поля записи для Петра Петрова (рис. 16.13).
![](image/uprazhnenie-5-svjaz-tablic_3.gif)
Рис. 16.13.
Выборка данных из связанной таблицы
Примечание
При раскрытии фрагмента связанной таблицы знак «плюс» превращается в знак «минус». Чтобы скрыть дополнительную таблицу, щелкните на нем еще раз.
Щелкните еще на каком-нибудь знаке «плюс», и вы увидите описание всех контактов с еще одним человеком. Таким образом, с помощью созданной связи вы можете быстро просматривать в окне таблицы Список описания всех контактов с определенным человеком или группой лиц.