Создание, изменение и удаление отношения

Примечание:  Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке) .

После создания таблицы для каждой темы в базе данных, необходимо указать Office Access 2007 средств, на которое нужно вернуть эту информацию вместе еще раз при необходимости. Это можно сделать, поместив стандартные поля в таблицах, которые связаны, а также определение таблицы связей между таблицами. Затем можно создать запросы, формы и отчеты, которые отображают данные из нескольких таблиц одновременно.

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

Дополнительные сведения о связи между таблицами читайте в статье руководство по межтабличным связям.

В этой статье

Создание отношения между таблицами

Создание отношения между таблицами с помощью вкладки связей документа

Создание отношения между таблицами с помощью панели списка полей

Изменение отношения между таблицами

Обеспечение целостности данных

Удаление отношения между таблицами

Создание связи между таблицами

Можно создать отношения между таблицами в окне схемы данных или путем перетаскивания поле таблицы из области Список полей. При создании связи между таблицами, стандартные поля не должны иметь те же имена, несмотря на то, что это происходит часто их действия. Вместо этого стандартные поля должны иметь одинаковый тип данных. Если поле "Счетчик" является поле первичного ключа, однако, поле внешнего ключа также может быть числового поля Если свойство FieldSize обоих полей совпадает с. Например если длинное целое число является свойством FieldSize обоих полей можно сопоставить поля счетчика с числовым полем. Если оба стандартные поля числовых полей, они должны тот же параметр свойством FieldSize .

К началу страницы

Создание отношения между таблицами с помощью вкладки связей документа

  1. Нажмите кнопку Microsoft Office Изображение кнопки Office и выберите Открыть.

  2. В диалоговом окне Открытие файла базы данных выберите и откройте базу данных.

  3. На вкладке " Работа с базами данных ", в группе Показать или скрыть нажмите кнопку Схема данных.

    Изображение ленты Access

  4. Если ни одна связь еще не определена, автоматически откроется диалоговое окно Добавление таблицы. Если это окно не открылось, на вкладке Конструктор в группе Связи нажмите кнопку Отобразить таблицу.

    Группа "Отношения" на вкладке ленты "Конструктор"

    В диалоговом окне Добавление таблицы отображены все таблицы и запросы, содержащиеся в базе данных. Чтобы отобразить только таблицы, откройте вкладку Таблицы. Чтобы отобразить только запросы, откройте вкладку Запросы. Чтобы отобразить и таблицы и запросы, откройте вкладку Таблицы и запросы.

  5. Выберите одну или несколько таблиц или запросов и нажмите кнопку Добавить. После добавления таблиц и запросов на вкладку "Схема данных" нажмите кнопку Закрыть.

  6. Перетащите поле (как правило, поле первичного ключа) из одной таблицы на общее поле (поле внешнего ключа) в другой таблице. Чтобы перетащить сразу несколько полей, нажмите клавишу CTRL и, удерживая ее нажатой, выделите каждое поле.

    Откроется диалоговое окно Изменение связей.

    Диалоговое окно "Изменение связей"

  7. Убедитесь, что поля, имена которых отображены в диалоговом окне, являются общими полями данной связи. Если имя поля неверно, нажмите его и выберите верное поле из списка.

    Чтобы обеспечить для этой связи целостность данных, установите флажок Обеспечение целостности данных. Дополнительные сведения о целостности данных обратитесь к разделу Обеспечение целостности данных

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

  8. Нажмите кнопку Создать.

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

Перетаскивание поля из одной таблицы на соответствующее поле другой таблицы

Примечания: 

  • Создание связи "один-к-одному".    У обоих общих полей (как правило, поля первичного ключа и внешнего ключа) должен быть уникальный индекс. Это означает, что свойство Индексированное поле этих полей должно иметь значение Да (Совпадения не допускаются). Если оба поля имеют уникальный индекс, в приложении Access создается связь "один-к-одному".

  • Создание связи "один-ко-многим".    У поля на одной стороне связи (как правило, поля первичного ключа) должен быть уникальный индекс. Это означает, что свойство Индексированное поле этого поля должно иметь значение Да (Совпадения не допускаются). Поле на стороне "многие" не должно иметь уникального индекса. Это поле может быть индексированным, но для него должны допускаться повторы. Это означает, что свойство Индексированное поле этого поля должно иметь значение Нет или Да (Допускаются совпадения). Когда у одного поля однозначный индекс, а у другого — нет, в приложении Access создается связь "один-ко-многим".

К началу страницы

Создание связи между таблицами с помощью области "Список полей"

В Office Access 2007 можно добавить поле в существующую таблицу, открыта в режиме таблицы путем перетаскивания из области Список полей . В области Список полей показаны доступные поля в связанных таблицах и также полей доступны из других таблиц в базе данных. Когда вы перетащите поле из таблицы «другое» (несвязанные) и завершите работу мастера подстановок, новый уровень один ко многим будет автоматически создана между таблицей в области Список полей и таблицы, к которому перетащить поле. В этой связи, созданные в Access, не обеспечение целостности данных по умолчанию. Чтобы обеспечение целостности данных, необходимо изменить связи. В разделе Изменение отношения между таблицами для получения дополнительных сведений.

Открытие таблицы в режиме таблицы

  1. Нажмите кнопку Microsoft Office Изображение кнопки Office и выберите Открыть.

  2. В диалоговом окне Открытие файла базы данных выберите и откройте базу данных.

  3. В области навигации щелкните правой кнопкой мыши таблицу, к которому нужно добавить поле и создать связь и нажмите кнопку Режим таблицы в контекстном меню.

Открытие области "Список полей"

  • На вкладке Таблица в группе Поля и столбцы щелкните Добавить поля.

    Изображение ленты Access

    Будет отображена область Список полей.

    Область ''Список полей''

В области Список полей отображены все другие таблицы базы данных, сгруппированные по категориям. При работе с таблицей в режиме таблицы в области Список полей отображаются поля в одной из двух категорий: Доступные поля в связанной таблице и Доступные поля в другой таблице. К первой категории относятся все таблицы, связанные отношением с текущей таблицей. Во второй категории перечислены все таблицы, с которыми данная таблица не связана отношением.

Чтобы просмотреть список всех полей таблицы, щелкните знак плюс (+) рядом с именем таблицы в области Список полей. Чтобы добавить поле в таблицу, перетащите его из области Список полей в таблицу в режиме таблицы.

Добавление поля и создание связи из области "Список полей"

  1. На вкладке Таблица в группе Поля и столбцы щелкните Добавить поля.

    Изображение ленты Access

    Будет отображена область Список полей.

  2. Чтобы отобразить список полей в таблице, в группе Доступные поля в другой таблице щелкните знак плюс (+) рядом с именем таблицы.

  3. Перетащите нужное поле из области Список полей в таблицу, открытую в режиме таблицы.

  4. Когда появится линия вставки, поместите поле в выбранное место.

    Появится окно мастера подстановок.

  5. Следуйте инструкциям мастера подстановок.

    Поле будет отображено в таблице в режиме таблицы.

Когда вы перетащите поле из таблицы «другое» (несвязанные) и завершите работу мастера подстановок, новый уровень один ко многим будет автоматически создана между таблицей в Списке полей и таблицы, к которому перетащить поле. В этой связи, созданные в Access, не обеспечение целостности данных по умолчанию. Чтобы обеспечение целостности данных, необходимо изменить связи. В разделе Изменение отношения между таблицами для получения дополнительных сведений.

К началу страницы

Изменение отношения между таблицами

Изменение отношения между таблицами, выбрав его в документ вкладку отношения и внесите нужные изменения.

  1. Установите указатель на линию связи и щелкните линию, чтобы выделить ее.

    При выделении линия связи становится толще.

  2. Дважды щелкните выделенную линию связи

    ИЛИ

    на вкладке Конструктор в группе Сервис выберите команду Изменить связи.

Откроется диалоговое окно Изменение связей.

Открытие диалогового окна "Изменение связей"

  1. Нажмите кнопку Microsoft Office Изображение кнопки Office и выберите Открыть.

  2. В диалоговом окне Открытие файла базы данных выберите и откройте базу данных.

  3. На вкладке " Работа с базами данных ", в группе Показать или скрыть нажмите кнопку Схема данных.

    Появится вкладка документа связей.

    Если не определено любых связей и в первый раз при открытии вкладку связей документа появится диалоговое окно Добавление таблицы. Если появится диалоговое окно, нажмите кнопку Закрыть.

  4. На вкладке Конструктор в группе Связи нажмите кнопку Все связи.

    Группа "Отношения" на вкладке ленты "Конструктор"

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

    Дополнительные сведения о параметр Показывать скрытые объекты читайте в статье руководство по началу работы в область навигации.

  5. Щелкните линию связи, которую требуется изменить. Выделенная линия связи станет жирной.

  6. Дважды щелкните линию связи.

    ИЛИ

    На вкладке Конструктор в группе Сервис выберите команду Изменить связи.

    Откроется диалоговое окно Изменение связей.

    Диалоговое окно "Изменение связей"

  7. Внесите изменения и нажмите кнопку ОК.

    Диалоговое окно « Изменение связей » позволяет изменять отношения между таблицами. В частности вы можете изменить таблицы или запросы на обеих сторон отношения или поля с обеих сторон. Можно также задание типа объединения или обеспечение целостности данных и выберите параметр каскадного. Дополнительные сведения о типа соединения и настроить его в разделе Задание типа объединения. Дополнительные сведения о том, как обеспечение целостности данных и выберите параметр каскадного обратитесь к разделу Принудительная целостности данных.

Указание типа соединения

При определении отношения между таблицами сведения о нем влияют на структуру запросов. Например, при определении отношения между двумя таблицами и создании запроса, работающего с этими двумя таблицами, в Access автоматически выбираются сопоставляемые поля по умолчанию на основе полей, указанных в отношении. Эти исходные значения в запросе можно переопределить, но часто значения, определенные отношением между таблицами, являются верными. Поскольку сопоставление и объединение данных из двух таблиц являются часто воспроизводимыми действиями во всех базах данных, кроме самых простых, параметры по умолчанию, определенные отношениями между таблицами, могут быть полезны и экономить время.

С помощью запроса к нескольким таблицам можно комбинировать данные из них путем сопоставления значений в общих полях. Операция сопоставления и комбинирования называется объединением. Например, требуется отобразить заказы клиентов. Для этого создается запрос, объединяющий таблицы "Клиенты" и "Заказы" по полю "Код клиента". Результаты запроса содержат сведения о клиенте, а также другие сведения только для строк с найденным соответствующим значением.

Одно из значений, которое можно задать для каждого отношения, — это тип объединения. Тип объединения определяет, какие записи будут включены в результаты запроса. Обратимся к описанному примеру с объединением таблиц "Клиенты" и "Заказы" по общим полям, представляющим код клиента. При использовании типа объединения по умолчанию (внутреннего соединения) запрос возвращает только строки таблиц "Клиенты" и "Заказы", для которых общие поля (также называемые связанными полями) совпадают.

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

Примечание: В этом случае «слева» и «справа» относятся к положению таблиц в диалоговом окне Изменение связей, не вкладку документ отношения.

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

Указание типа соединения

  1. В диалоговом окне Изменение связей нажмите кнопку Тип соединения.

    Откроется диалоговое окно Параметры соединения.

  2. Выберите нужные параметры и нажмите кнопку ОК.

В таблице ниже, составленной на основании таблиц "Клиенты" и "Заказы", приведены три варианта, отображаемые в окне Параметры объединения, указан используемый в них тип объединения, а также то, какие именно строки (все или только сопоставленные) возвращаются для каждой из таблиц.

Вариант

Реляционное соединение

Левая таблица

Правая таблица

1. Объединение только тех записей, в которых связанные поля обеих таблиц совпадают.

Внутреннее соединение

Сопоставленные строки

Сопоставленные строки

2. Объединение ВСЕХ записей из таблицы "Клиенты" и только тех записей из таблицы "Заказы", в которых связанные поля совпадают.

Левое внешнее соединение

Все строки

Сопоставленные строки

3. Объединение ВСЕХ записей из таблицы "Заказы" и только тех записей из таблицы "Клиенты", в которых связанные поля совпадают.

Правое внешнее соединение

Сопоставленные строки

Все строки

При выборе варианта 2 или 3 на линии связи будет отображена стрелка, указывающая на ту сторону связи, в которой отображаются только сопоставленные строки.

Внесение изменений в окне "Параметры объединения"

  1. Нажмите кнопку Microsoft Office Изображение кнопки Office и выберите Открыть.

  2. В диалоговом окне Открытие файла базы данных выберите и откройте базу данных.

  3. На вкладке Работа с базами данных в группе Показать или скрыть выберите пункт Отношения.

    Изображение ленты Access

    Появится вкладка документа связей.

    Если не определено любых связей и в первый раз при открытии вкладку связей документа появится диалоговое окно Добавление таблицы. Если появится диалоговое окно, нажмите кнопку Закрыть.

  4. На вкладке Конструктор в группе Связи нажмите кнопку Все связи.

    Группа "Отношения" на вкладке ленты "Конструктор"

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

    Дополнительные сведения о параметр Показывать скрытые объекты читайте в статье руководство по началу работы в область навигации.

  5. Щелкните линию связи, которую требуется изменить. Выделенная линия связи станет жирной.

  6. Дважды щелкните линию связи.

    ИЛИ

    На вкладке Конструктор в группе Сервис выберите команду Изменить связи.

    Откроется диалоговое окно Изменение связей.

  7. Нажмите кнопку Тип соединения.

  8. В диалоговом окне Параметры соединения выберите нужный параметр и нажмите кнопку ОК.

    Диалоговое окно "Параметры объединения"

  9. Внесите в связь необходимые изменения и нажмите кнопку ОК.

К началу страницы

Обеспечение целостности данных

Назначение целостности данных — для предотвращения потерянных записей и поддержании ссылок синхронизированы так, чтобы не все записи, которые ссылаются на других записей, которые больше не существует. Обеспечение целостности данных, включив связям между таблицами. Если она включена, Access отклоняет любой операции, нарушит для этой таблицы связи целостность данных. Это означает, что доступ будет отклонять оба обновления, изменяющиеся цель ссылки и удаления, удалить цель ссылки. Есть доступ распространить ссылочная обновления и удаления, чтобы соответственно изменяются все связанные строки, в разделе Задание каскадных параметров .

Включение и отключение обеспечения целостности данных

  1. Нажмите кнопку Microsoft Office Изображение кнопки Office и выберите Открыть.

  2. В диалоговом окне Открытие файла базы данных выберите и откройте базу данных.

  3. На вкладке Работа с базами данных в группе Показать или скрыть выберите пункт Отношения.

    Изображение ленты Access

    Появится вкладка документа связей.

    Если не определено любых связей и в первый раз при открытии вкладку связей документа появится диалоговое окно Добавление таблицы. Если появится диалоговое окно, нажмите кнопку Закрыть.

  4. На вкладке Конструктор в группе Связи нажмите кнопку Все связи.

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

    Дополнительные сведения о параметр Показывать скрытые объекты читайте в статье руководство по началу работы в область навигации.

  5. Щелкните линию связи, которую требуется изменить. Выделенная линия связи станет жирной.

  6. Дважды щелкните линию связи.

    ИЛИ

    На вкладке Конструктор в группе Сервис выберите команду Изменить связи.

    Откроется диалоговое окно Изменение связей .

  7. Установите флажок обеспечение целостности данных.

  8. Внесите в связь необходимые изменения и нажмите кнопку ОК.

В режиме обеспечения целостности данных действуют правила, указанные ниже.

  • Не допускается ввод в поле внешнего ключа связанной таблицы значений, отсутствующих в поле первичного ключа главной таблицы, поскольку это приводит к появлению потерянных записей.

  • Не допускается удаление записи из главной таблицы, если в связанной таблице существуют связанные с ней записи. Например, невозможно удалить запись из таблицы "Сотрудники", если в таблице "Заказы" имеются заказы, относящиеся к данному сотруднику. Однако можно удалить главную запись и все связанные записи одним действием, установив флажок Каскадное удаление связанных записей.

  • Не допускается изменение значения первичного ключа в главной таблице, если это приведет к появлению потерянных записей. Например, нельзя изменить номер заказа в таблице "Заказы", если в таблице "Сведения о заказах" имеются строки, относящиеся к этому заказу. Однако можно обновить главную запись и все связанные записи одним действием, установив флажок "Каскадное обновление связанных полей".

    Примечания: Если при включении обеспечения целостности данных возникли трудности, обратите внимание на то, что должны выполняться условия, перечисленные ниже.

    • Общее поле главной таблицы должно быть первичным ключом или иметь уникальный индекс.

    • Общие поля должны иметь одинаковый тип данных. Единственное исключение — поле типа "Счетчик" можно связать с полем типа "Числовой", если его свойство Размер поля имеет значение Длинное целое.

    • Обе таблицы существуют в одной базе данных Access. Обеспечение целостности данных нельзя включить для присоединенных таблиц. Однако если исходные таблицы имеют формат Access, можно открыть базу данных, в которой они хранятся, и включить обеспечение целостности данных в этой базе.

Задание каскадных параметров

Иногда возникает ситуация, в которой требуется изменить значение только на стороне "один" отношения. В этом случае необходимо, чтобы Access автоматически обновил все затронутые строки в ходе выполнения одной операции. Тогда обновление будет полностью завершено, а база данных не будет находиться в несогласованном состоянии, когда некоторые строки обновлены, а другие — нет. Этой проблемы можно избежать с помощью параметра Access "Каскадное обновление связанных полей". Если при включении обеспечения целостности данных был включен параметр "Каскадное обновление связанных полей", то при последующем обновлении первичного ключа автоматически будут обновлены все связанные с ним поля.

Также может потребоваться удаление строки и всех связанных с ней записей — например, записи в таблице "Поставщики" и всех связанных с этим поставщиком заказов. Для этого в Access предназначен параметр "Каскадное удаление связанных записей". Если включить обеспечение целостности данных и установить флажок Каскадное удаление связанных записей, при удалении записи, содержащей первичный ключ, будут автоматически удалены все записи, связанные с этим первичным ключом.

Включение и отключение каскадного обновления и каскадного удаления

  1. Нажмите кнопку Microsoft Office Изображение кнопки Office и выберите Открыть.

  2. В диалоговом окне Открытие файла базы данных выберите и откройте базу данных.

  3. На вкладке Работа с базами данных в группе Показать или скрыть выберите пункт Отношения.

    Изображение ленты Access

    Появится вкладка документа связей.

    Если не определено любых связей и в первый раз при открытии вкладку связей документа появится диалоговое окно Добавление таблицы. Если появится диалоговое окно, нажмите кнопку Закрыть.

  4. На вкладке Конструктор в группе Связи нажмите кнопку Все связи.

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

    Дополнительные сведения о параметр Показывать скрытые объекты читайте в статье руководство по началу работы в область навигации.

  5. Щелкните линию связи, которую требуется изменить. Выделенная линия связи станет жирной.

  6. Дважды щелкните линию связи.

    ИЛИ

    На вкладке Конструктор в группе Сервис выберите команду Изменить связи.

    Откроется диалоговое окно Изменение связей.

  7. Установите флажок Обеспечение целостности данных.

  8. Установите флажок Каскадное обновление связанных полей, Каскадное удаление связанных записей или оба эти флажка.

  9. Внесите в отношение необходимые изменения и нажмите кнопку ОК.

Примечание: Если первичным ключом является поле "Счетчик", установка флажка Каскадное обновление связанных полей не произведет никакого эффекта, поскольку изменить значение поля "Счетчик" нельзя.

К началу страницы

Удаление связи между таблицами

Удаление отношения между таблицами, необходимо удалить линию связи на вкладке документ связей тщательно позиции курсора так, чтобы он указывал на линию связи и щелкните линию. Линия связи толще, если она выбрана. Выделенную линию связи нажмите клавишу DELETE. Обратите внимание, что при удалении связи, можно также удалить поддержки целостности данных для этой связи, если она включена. В результате Access не даст больше не будет автоматически создания потерянных записей на стороне «многие» связи.

  1. Нажмите кнопку Microsoft Office Изображение кнопки Office и выберите Открыть.

  2. В диалоговом окне Открытие файла базы данных выберите и откройте базу данных.

  3. На вкладке " Работа с базами данных ", в группе Показать или скрыть нажмите кнопку Схема данных.

    Изображение ленты Access

    Появится вкладка документа связей.

    Если не определено любых связей и в первый раз при открытии вкладку связей документа появится диалоговое окно Добавление таблицы. Если появится диалоговое окно, нажмите кнопку Закрыть.

  4. На вкладке Конструктор в группе Связи нажмите кнопку Все связи.

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

    Дополнительные сведения о параметр Показывать скрытые объекты читайте в статье руководство по началу работы в область навигации.

  5. Щелкните линию связи, которую требуется удалить. Выделенная линия связи станет жирной.

  6. Нажмите клавишу DEL

    ИЛИ

    Щелкните правой кнопкой мыши и выберите команду Удалить.

  7. При этом может появиться сообщение Подтвердите удаление выделенной связи из базы данных. В этом случае нажмите кнопку Да.

Примечание: Если одна из таблиц, участвующих в отношении, в данный момент используется (возможно, третьим лицом, процессом либо в открытом объекте базы данных, например в форме), удалить отношение между таблицами будет невозможно. Перед попыткой удаления отношения между таблицами закройте все открытые объекты, использующие эти таблицы.

К началу страницы

Совершенствование навыков работы с Office
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединиться к программе предварительной оценки Office

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×