как связать две формы в access
Создание формы, содержащей подчиненную форму (форма с отношением «один-ко-многим»)
При работе с реляционными данными (т. е. связанными данными, которые хранятся в разных таблицах) нередко требуется просматривать несколько таблиц или запросов в одной форме. Например, может потребоваться одновременно просмотреть данные клиента из одной таблицы и сведения о его заказах из другой. Подчиненные формы — удобный инструмент для подобных задач, и в Access их можно быстро создать несколькими способами.
В этой статье
Сведения о подчиненных формах
Подчиненной называют форму, вставленную в другую форму. Главная форма называется основной, а форма, вложенная в нее, — подчиненной. Комбинацию формы и подчиненной формы иногда также называют иерархической формой, сочетанием основной формы и формы подробностей или комбинацией родительской и дочерней форм.
Подчиненные формы особенно удобны для отображения данных из таблиц или запросов с отношением «один-ко-многим». Отношение «один-ко-многим» представляет собой связь между двумя таблицами, при которой значение первичного ключа каждой записи в главной таблице соответствует значению в соответствующем поле или полях нескольких записей в связанной таблице. Например, можно создать форму, в которой отображаются сведения о сотрудниках и которая содержит подчиненную форму с заказами каждого сотрудника. Данные в таблице «Сотрудники» являются в отношении стороной «один». Данные в таблице «Заказы» являются в отношении стороной «многие» — для каждого сотрудника может быть несколько заказов.
1. В основной форме отображаются данные на стороне отношения «один».
2. В подчиненной форме выводятся данные на стороне отношения «многие».
Основная и подчиненная формы взаимодействуют таким образом, что в подчиненной выводятся только те записи, которые связаны с текущей записью в основной. Например, если в основной форме отображаются данные Ольги Зуевой, то в подчиненной отображаются только ее заказы. Если связь между основной и подчиненной формами была разорвана, то в подчиненной форме будут отображаться заказы всех сотрудников, а не только Ольги.
В таблице ниже определены некоторые термины, связанные с подчиненной формы. Access будет обрабатывать большинство сведений, если вы используете процедуры, которые вы используете в этой статье, но полезно знать, какие изменения происходят в дальнейшем.
Элемент управления подчиненной формы
Элемент управления, который служит для внедрения одной формы в другую. Его можно рассматривать как «представление» другого объекта в базе данных, будь то другая форма, таблица или запрос. Элемент управления подчиненной формы обладает свойствами, которые позволяют связывать данные, отображаемые в нем, с данными в основной форме.
Свойство элемента управления подчиненной формы, определяющее, какой объект в нем отображается.
Простое отображение данных в строках и столбцах, как в электронной таблице. В элементе управления подчиненной формы отображается таблица, когда объектом-источником является таблица или запрос, либо форма, для свойства «Режим по умолчанию» которой задано значение «Режим таблицы». В этих случаях подчиненную форму иногда называют таблицей или подтаблицей.
Свойство «Подчиненные поля»
Свойство элемента управления подчиненной формы, которое задает поле или поля в подчиненной форме, которые будут связывать ее с основной.
Свойство «Основные поля»
Свойство элемента управления подчиненной формы, которое задает поле или поля в основной форме, которые будут связывать ее с подчиненной.
Перед тем, как выполнить описанные в этой статье действия, мы рекомендуем настроить связи между таблицами. Это позволит Access автоматически создать связи между основными и подчиненными формами. Чтобы просмотреть, добавить или изменить связи между таблицами в базе данных, на вкладке Работа с базами данных в группе Показать или скрыть нажмите кнопку Схема данных.
Когда элемент управления подчиненной формы имеет в качестве объекта-источника форму, он содержит поля, помещенные в нее и его можно просмотреть как одиночную форму, ленточную форму или таблицу. Одним из преимуществ создания подчиненной формы на основе формы является возможность добавления вычисляемых полей в подчиненную форму, например: [Количество] * [Цена].
Можно также вставить в форму таблицу или сводное представление путем создания элемента управления подчиненной формы, объектом-источником для которого служит таблица или запрос. Дополнительные сведения см. в разделе Добавление связанных данных в форму без создания подчиненной формы.
Создание или добавление подчиненной формы
В таблице ниже представлены рекомендации по выбору процедуры, которая лучше всего подходит для конкретной ситуации.
Нужно создать в приложении Access основную и подчиненную формы и связать их.
Нужно использовать существующую форму в качестве основной, но при этом создать в Access новую подчиненную форму и добавить ее в основную.
Нужно использовать существующую форму в качестве основной и добавить в нее одну или несколько существующих форм в качестве подчиненных.
Создание формы, содержащей подчиненную форму, с помощью мастера форм
Данная процедура позволяет создать новую комбинацию формы и подчиненной формы с помощью мастера форм. Это также самый быстрый способ начать работу, если еще не были созданы формы, которые планируется использовать в качестве основной или подчиненной формы.
На вкладке Создание в группе Формы нажмите кнопку Мастер форм.
На первой странице мастера в раскрывающемся списке Таблицы и запросы выберите таблицу или запрос. Например, чтобы создать форму «Сотрудники» для отображения в подчиненной форме списка заказов для каждого сотрудника, выберите пункт Таблица: Сотрудники (сторона «один» отношения «один-ко-многим»).
Примечание: Порядок выбора таблиц и запросов не имеет значения.
Дважды щелкните поля таблицы или запроса, которые нужно включить в форму.
На той же странице мастера в раскрывающемся списке Таблицы и запросы выберите другую таблицу или запрос. В данном примере мы выберем таблицу «Заказы» (сторона «многие» связи «один-ко-многим»).
Дважды щелкните поля таблицы или запроса, которые нужно включить в форму.
При нажатии кнопки «Далее» предполагается, что связи настроены правильно до начала работы мастера, мастер спросит, как вы хотите просмотреть данные? — по какой таблице или запросу. Выберите таблицу на стороне «один» связи «один-к-многим». В этом примере для создания формы «Сотрудники» будет щелкнуть «Сотрудники». Мастер отобразит небольшую схему формы. Страница должна иметь следующий рисунок:
Поле в нижней части изображения формы обозначает подчиненную форму.
Примечание: Если запрос Выберите способ представления данных не отображается, это означает, что приложению Access не удалось обнаружить связь «один-ко-многим» между выбранными таблицами или запросами. Мастер продолжит работу, но в форму не будет добавлена подчиненная форма. Если вы хотите сначала проверить связи между таблицами, нажмите кнопку Отмена.
Установите в нижней части страницы мастера переключатель Подчиненные формы и нажмите кнопку Далее.
На странице Выберите внешний вид подчиненной формы: выберите нужный вариант макета и нажмите кнопку Далее. В макетах обоих стилей данные подчиненной формы располагаются в виде строк и столбцов, но ленточный макет имеет больше возможностей настройки. В ленточной подчиненной форме можно добавлять цвет, изображения и другие элементы форматирования, однако табличный макет компактнее, как и табличное представление таблицы.
На следующей странице мастера выберите стиль форматирования для формы и нажмите кнопку Далее. Если на предыдущей странице вы выбрали значение Табличный, выбранное форматирование стиля также применяется к подчиненной форме.
На последней странице мастера введите заголовки форм. Имена автоматически присваиваются формам на основе введенных заголовков, а надписи подчиненных форм — на основе введенных заголовков подчиненных форм.
Укажите режим, в котором вы хотите открывать форму: режим формы (чтобы можно было просмотреть или ввести данные) или Конструктор (чтобы можно было изменить ее структуру). Затем нажмите кнопку Готово.
Access создаст две формы — основную форму, которая содержит подчиненную, и саму подчиненную форму.
Добавление одной или нескольких подчиненных форм в существующую форму с помощью мастера подчиненных форм
Используйте эту процедуру для добавления одной или нескольких подчиненных форм в существующую форму. Для каждой подчиненной формы можно создать новую форму или использовать существующую.
В области навигации щелкните существующую форму правой кнопкой мыши и выберите пункт Конструктор.
На вкладке Конструктор в группе Элементы управления щелкните стрелку вниз, чтобы открыть коллекцию Элементы управления, и убедитесь в том, что установлен флажок Использовать мастера.
На вкладке Конструктор в группе Элементы управления выберите элемент Подчиненная форма/отчет.
В форме щелкните место, куда нужно поместить подчиненную форму.
Следуйте указаниям мастера.
После нажатия кнопки Готово в форму будет добавлена подчиненная форма. Если для подчиненной формы создается новая форма, а не используется существующая, новый объект формы будет создан и добавлен в область навигации.
Создание подчиненной формы путем перетаскивания одной формы в другую
Выберите эту процедуру, если нужно использовать существующую форму в качестве основной и добавить в нее одну или несколько существующих форм в качестве подчиненных.
В области навигации щелкните правой кнопкой мыши форму, которую нужно использовать в качестве основной, и выберите пункт Конструктор.
Перетащите форму, которую вы хотите использовать в качестве подчиненной, из области навигации на основную форму.
Access добавит в основную форму элемент управления подчиненной формы, который будет связан с формой, добавленной путем перетаскивания из области навигации. Он также попытается связать подчиненную форму с основной на основе отношений, определенных в базе данных.
Повторите этот шаг, чтобы добавить другие подчиненные формы в основную.
Чтобы проверить, успешно ли создана связь, на вкладке Главная в группе Режимы нажмите кнопку Режим, выберите команду Режим формы и с помощью селектора записей основной формы просмотрите несколько записей. Если в подчиненной форме правильно отображаются данные для каждого сотрудника, это означает, что процедура завершена успешно.
Если проверка не работает, это означает, что программе Access не удалось создать связь подчиненной формы с основной и свойства Подчиненные поля и Основные поля элемента управления подчиненной формы остались пустыми. Задайте значения для этих свойств вручную, выполнив указанные ниже действия.
В области навигации щелкните основную форму правой кнопкой мыши и выберите пункт Конструктор.
Щелкните элемент управления подчиненной формы один раз, чтобы выделить его.
Если область задач «Окно свойств» не отображается, нажмите клавишу F4.
В окне свойств откройте вкладку Данные.
Нажмите кнопку «Построить» рядом с полем свойства «Ребенку полей».
Будет открыто диалоговое окно Связь с полями подчиненной формы.
В списках «Поля и потомки» выберите поля, с помощью которые вы хотите связать формы, и нажмите кнопку «ОК». Если вы не знаете, какие поля использовать, нажмите кнопку «Предложить», чтобы Access попытается определить связующие поля.
Совет: Если не отображается поле, которое требуется использовать для связывания форм, возможно, придется так отредактировать источник записей основной или подчиненной формы, чтобы данное поле в нем присутствовало. Например, если форма основана на запросе, следует убедиться, что связывающее поле присутствует в результатах запроса.
Сохраните основную форму и переключитесь в режим формы, а затем проверьте, правильно ли она работает.
Открытие подчиненной формы в новом окне в Конструкторе
Если вы хотите внести изменения в структуру подчиненной формы во время работы над основной формой в Конструкторе, вы можете открыть ее в отдельном окне:
Щелкните подчиненную форму, чтобы выбрать ее.
На вкладке Конструктор в группе Сервис нажмите кнопку Подчиненная форма в новом окне.
Изменение представления по умолчанию для подчиненной формы
При добавлении подчиненной формы в форму элемент управления подчиненной формы (или отчета) отображает подчиненную форму в соответствии с ее свойством Режим по умолчанию. Ниже перечислены значения, которые можно установить для этого свойства.
При создании подчиненной формы для этого свойства может быть установлено значение Ленточные формыили Простая форма. Однако если для свойства Режим по умолчанию подчиненной формы установить значение Режим таблицы, она будет отображаться как таблица в основной форме.
Чтобы задать значение свойства Режим по умолчанию подчиненной формы, выполните указанные ниже действия.
Закройте все открытые объекты.
В области навигации щелкните подчиненную форму правой кнопкой мыши и выберите пункт Конструктор.
Если окно свойств не отображается, нажмите клавишу F4.
Убедитесь в том, что в раскрывающемся списке в верхней части окна свойств выбран пункт Форма.
На вкладке Формат окна свойств задайте для свойства Режим по умолчанию нужное значение.
Примечание: Если нужный режим отсутствует в списке, убедитесь в том, что для свойства «Режим. » установлено значение Да. Например, если нужно выбрать вариант Режим таблицы, убедитесь, что для свойства Режим таблицы установлено значение Да.
Сохраните и закройте подчиненную форму, а затем откройте основную форму, чтобы проверить результаты.
Добавление связанных данных в форму без создания подчиненной формы
Не всегда требуется создавать отдельный объект формы для отображения связанных данных. Например, если вы работаете с формой в конструкторе или макете и перетаскивайте в нее таблицу или запрос из области навигации, в Access создается набор подчиненной формы или подчиненного с данными в этом объекте. Отображение данных определяется свойством «Режим по умолчанию» объекта. Обычно для этого используется режим таблицы, но для свойства «Режим по умолчанию» таблицы или запроса можно установить значение «Одна форма», «Разделенная форма» или «Лентообразная форма», что обеспечивает большую гибкость при отображке связанных данных в формах.
Примечание: Изменение свойства Режим по умолчанию для таблицы или запроса влияет на способ их отображения при открытии из области навигации или при просмотре в элементе управления подчиненной формы или отчета. Поскольку изменение параметров отображения таблицы иногда может привести к путанице при ее открытии из области навигации, в этой процедуре рекомендуется вместо таблицы использовать запрос.
Установка связи между формами
Если у вас длинная форма с несколькими пунктами, иногда нужно быстро «развернуть», чтобы увидеть дополнительные сведения об одном элементе. Это можно сделать в Access, связав форму с одним элементом. При щелчке элемента в форме с несколькими пунктами открывается форма с подробными сведениями.
Эта статья не относится к веб-приложениям Access — типу баз данных, которые вы проектаете с помощью Access и публикуете в Интернете.
Если вы имели в виду что-то другое под «связыванием», см. другие типы ссылок в конце этой статьи.
Создание форм
В большинстве случаев две формы в drill-down configuration основаны на одной таблице или запросе. Если у вас уже есть пара форм, которые вы хотите использовать (одна из них — таблица или форма с несколькими пунктами, а другая — форма с одним элементом или с подробностями), этот раздел можно пропустить. В противном случае их можно создать с помощью указанных здесь процедур.
Создание таблицы или формы с несколькими пунктами
В области навигации выберите таблицу или запрос с данными, которые должны быть в форме таблицы.
Нажмите кнопку > «Другиеформы», а затем выберите пункт «Несколько элементов» или «Таблица» взависимости от того, какой тип формы вам нужен.
Внести нужные изменения в оформление. Удаляйте как можно больше столбцов, оставляя достаточно информации для идентификации каждого элемента.
Сохраните и закройте форму.
Дополнительные сведения о формах с несколькими элементами см. в статье «Создание формы с помощью инструмента «Несколько элементов».
Создание формы для одного элемента или формы detail:
В области навигации выберите таблицу или запрос с данными, которые должны быть в форме данных. Скорее всего, это будет та же таблица или запрос, которые использовались для первой формы.
Нажмите кнопку «> форму».
Внести нужные изменения в оформление, а затем сохранить и закрыть форму.
Дополнительные сведения см. в инструменте «Форма»для создания формы.
Добавление логики, открываемой в форме подробностей
Теперь нужно добавить немного макроса в форму для нескольких элементов или таблицы. Макрос откроет форму подробностей и отобразит правильный элемент.
Не беспокойтесь, если вы мало работали с макросами. вы можете просто скопировать и вкопировать XML-текст, который вы найдете в этой процедуре.
Если используется форма таблицы, дважды щелкните ее в области навигации, чтобы открыть. Для формы с несколькими пунктами щелкните ее правой кнопкой мыши в области навигации и выберите пункт «Макет».
Если лист свойств еще не открыт, нажмите F4, чтобы открыть его.
Щелкните столбец, в который нужно добавить макрос. Это будет столбец, который вы щелкаете, чтобы открыть форму подробностей по завершению макроса. На рисунке выше макрос добавляется в столбец «ИД» frmContactList.
Совет: Макрос можно добавить в несколько столбцов.
На вкладке «События» окна свойств щелкните поле свойства «Нажатие кнопки» или «Нажатие кнопки «Нажать кнопку» (в зависимости от того, хотите ли вы открыть форму, щелкнув поле одним или двойным щелчком), а затем нажмите кнопку «Построить» .
Если Access запросит выбор построитель, выберите конструктор макроса и нажмите кнопку «ОК».
Щелкните пустую область конструктора макроса (под списком «Добавить новую макрос») и нажмите CTRL+V, чтобы ввести макрос. Если все будет хорошо, XML не будет показан в конструкторе макроса — он расширится в более учитаемые блоки макроса, как показано на следующем шаге.
При необходимости замените имя формы (frmContactDetails) и имя связываемого столбца (ID) именем формы и столбцом, который используется для связывания двух форм. На рисунке ниже показано, где может потребоваться внести изменения, чтобы совме собственные имена идентификаторов:
На вкладке «Конструктор» нажмите кнопку «Сохранить» и выберите «Закрыть».
Если вы хотите, чтобы столбцы со ссылками отображались как гиперссылки, чтобы другие люди знали, что они могут щелкать их, убедитесь, что столбец по-прежнему выбран, а затем на вкладке «Формат» установите для свойства «Показывать как гиперссылку» задав для свойства «Показывать как гиперссылки» задав для свойства «Всегда».
Сохраните и закроем форму, а затем снова и проверьте макрос, щелкнув измененный столбец или дважды щелкнув его.
Дополнительные сведения о макросах в базах данных рабочего стола см. в теме «Добавление логики в управление в базе данных рабочего стола».
Другие типы связывания форм
Сведения о том, как создать комбинацию формы или подчиненной формы и связать их друг с другом, см. в документе «Создание формы, которая содержит подчиненную форму (форма «один-к-многим»).
Сведения о создании формы, связанной с источником данных, например таблицей или запросом, см. в инструменте «Создание формы».
Руководство по межтабличным связям
Одной из целей создания хорошей структуры базы данных является устранение избыточности (повторения) данных. Для этого нужно распределить данные по нескольким отдельным тематически организованным таблицам, чтобы каждый факт был представлен один раз. В приложении Access будет предоставлен способ сбора разбросанных данных — это делается путем помещения общих полей в связанные таблицы. Чтобы корректно выполнить это действие, нужно понять взаимосвязи между таблицами и описать эти взаимосвязи в базе данных.
В этой статье
Введение
После создания таблицы для каждой темы в базе данных нужно предоставить приложению Accessсредства, с помощью которых можно будет при необходимости объединять сведения. Это делается путем создания общих полей в связанных таблицах и настройки связей между таблицами. После этого можно создавать запросы, формы и отчеты, одновременно отображающие сведения из нескольких таблиц. Например, приведенная ниже форма содержит сведения из нескольких таблиц:
1. Эта форма содержит данные из таблицы клиентов,
4. и сведений о заказах.
Имя клиента в поле Плательщик получено из таблицы «Клиенты», значения кода заказа и даты заказа — из таблицы «Заказы», наименование товара — из таблицы «Товары», а цена и количество — из таблицы «Заказано». Чтобы можно было передать данные в форму, эти таблицы связаны друг с другом несколькими способами.
В приведенном примере поля в таблицах должны быть согласованы таким образом, чтобы отображать сведения об одном и том же заказе. Это согласование осуществляется путем установления связей между таблицами. Связь между таблицами устанавливает отношения между значениями в ключевых полях — часто между полями, имеющими одинаковые имена в обеих таблицах. В большинстве случаев с первичным ключом одной таблицы, являющимся уникальным идентификатором каждой записи, связывается внешний ключ другой таблицы. Например, для связывания сотрудников с заказами, за которые они отвечают, можно создать связь между полями «Код сотрудника» в таблицах «Сотрудники» и «Заказы».
1. Поле «Код сотрудника» отображается в двух таблицах: как первичный ключ.
2. и как внешний ключ.
Типы связей между таблицами
В Access есть три типа связей между таблицами.
Рассмотрим базу данных, в которой учитываются заказы, включающую таблицы «Клиенты» и «Заказы» в качестве примера. Клиент может разместить любое количество заказов. Следовательно, у любого клиента, представленного в таблице «Клиенты», может быть много заказов, представленных в таблице «Заказы». Поэтому связь между таблицами «Клиенты» и «Заказы» — это отношение «один-ко-многим».
Чтобы создать отношение «один-ко-многим» в структуре базы данных, добавьте первичный ключ на стороне «один» в таблицу на стороне «многие» в виде дополнительного поля или полей. В данном примере необходимо добавить новое поле — поле «Код» из таблицы «Клиенты» — в таблицу «Заказы» и назвать его «Код клиента». После этого Access сможет использовать номер «Код клиента» из таблицы «Заказы» для поиска клиента каждого заказа.
Рассмотрим связь между таблицами «Товары» и «Заказы». Отдельный заказ может включать несколько товаров. С другой стороны, один товар может входить в несколько заказов. Таким образом, для каждой записи в таблице «Заказы» может существовать несколько записей в таблицы «Товары». Таким образом, для каждой записи в таблице «Заказы» может существовать несколько записей в таблице «Заказы». Эта связь называется отношением «многие-ко-многим». Обратите внимание, что для определения существующей схемы отношений «многие ко многим» между вашими таблицами, очень важно рассматривать обе стороны отношений.
Чтобы представить связь «многие-ко-многим», нужно создать третью (связующую) таблицу, в которой она разбивается на две связи «один-ко-многим». Первичные ключи двух таблиц вставляются в третью таблицу. В результате в третьей таблице сохраняются все экземпляры связи. Например, таблицы «Заказы» и «Продукты» имеют связь «многие-ко-многим», определяемую путем создания двух связей «один-ко-многим» в таблице «Заказано». В одном заказе может быть много продуктов, и каждый продукт может быть указан во многих заказах.
При отношении «один-к-одному» каждая запись в первой таблице может иметь не более одной связанной записи во второй таблице, и наоборот. Отношения этого типа используются нечасто, поскольку обычно сведения, связанные таким образом, хранятся в одной таблице. Отношение «один-к-одному» используется для разделения таблицы, содержащей много полей, с целью отделения части таблицы по соображениям безопасности, а также с целью сохранения сведений, относящихся к подмножеству записей в главной таблице. После определения такого отношения у обеих таблиц должно быть общее поле.
Зачем создавать связи между таблицами?
Связи между таблицами можно создать непосредственно с помощью окна «Схема данных» или путем перетаскивания поля из области Список полей. Access использует связи между таблицами для того, чтобы решить, как связать таблицы для использования их в объекте базы данных. Существует несколько причин для создания связей между таблицами перед созданием других объектов базы данных (форм, запросов, отчетов).
Связи между таблицами предоставляют сведения для структурирования запросов
Для работы с записями из нескольких таблиц часто приходится создавать запросы, соединяющие таблицы. Запрос сопоставляет значения в поле первичного ключа первой таблицы с полем внешнего ключа второй таблицы. Например, чтобы получить строки, в которых перечисляются все заказы для каждого из клиентов, можно создать запрос, соединяющий таблицу «Клиенты» с таблицей «Заказы» на основе поля «Код клиента». В окне «Схема данных» можно вручную указать поля для соединения. Но если связь между таблицами уже существует, Access использует соединение по умолчанию на основе существующей связи между таблицами. Кроме того, при использовании одного из мастеров запросов Access использует сведения об уже определенных связях между таблицами, чтобы предоставить пользователю выбор и подставить в параметры свойств соответствующие значения по умолчанию.
Связи между таблицами предоставляют сведения для структурирования форм и отчетов
При создании формы или отчета в Access используются сведения об уже определенных межтабличных связях, чтобы предоставить пользователю выбор и предварительно заполнить параметры свойств соответствующими значениями по умолчанию.
Связи между таблицами — это та основа, с помощью которой можно обеспечить целостность данных, чтобы в базе данных не было потерянных записей. Потерянная запись — это запись со ссылкой на несуществующую запись (например, запись заказа со ссылкой на отсутствующую запись клиента).
При создании базы данных сведения распределяются по таблицам, в каждой из которых есть первичный ключ. После этого к связанным таблицам добавляются внешние ключи, имеющие ссылки на первичные ключи. Эти пары из внешнего и первичного ключей формируют основу для связей между таблицами и многотабличных запросов. Поэтому важно, чтобы ссылки «внешний ключ — первичный ключ» оставались синхронизированными. Целостность данных, которая зависит от связей в таблице, гарантирует, что ссылки остаются синхронизированными.
Понятие о целостности данных
При создании базы данных сведения распределяются по множеству тематически организованных таблиц, чтобы свести к минимуму избыточность данных. После этого в Access предоставляются средства сбора разбросанных данных путем создания в связанных таблицах общих полей. Например, чтобы создать связь «один-ко-многим», добавьте первичный ключ из таблицы на стороне «один» как дополнительное поле в таблицу на стороне «многие». Чтобы соединить данные, Access подставляет значение из таблицы на стороне «многие» в соответствующее поле таблицы на стороне «один». Таким образом, значения таблицы на стороне «многие» связаны с соответствующими значениями на стороне «один».
Предположим, между таблицами «Грузоотправители» и «Заказы» существует связь «один-ко-многим», и нужно удалить грузоотправителя. Если у грузоотправителя, которого нужно удалить, есть заказы в таблице «Заказы, они станут потерянными записями после удаления записи грузоотправителя. В таблице «Заказы» останется код грузоотправителя, но он будет недействителен, поскольку запись, на которую он ссылается, уже не существует.
Задача сохранения целостности данных состоит в предотвращении появления потерянных записей и поддержании ссылок в синхронизированном состоянии, чтобы описанная выше гипотетическая ситуация никогда не возникла.
Обеспечение целостности данных включается для конкретного отношения между таблицами. После активации, Access будет отклонять любые операции, нарушающие целостность данных для этой межтабличной связи. Это означает, что Access будет отклонять как любые обновления, изменяющие целевой объект ссылки, так и удаление такого целевого объекта. Возможно, у вас может быть полностью допустимая потребность в изменении первичного ключа для поставщика, у которого есть заказы в таблице «Заказы». В этом случае необходимо, чтобы Access выполнил автоматическое обновление всех задействованных строк в рамках одной операции. Таким образом, Access гарантирует, что обновление будет полностью завершено, а база данных не будет находиться в несогласованном состоянии, когда некоторые строки обновлены, а другие — нет. Для этого в Access имеется параметр Каскадное удаление связанных записей. Если при включении обеспечения целостности данных был включен параметр Каскадное удаление связанных полей, то при последующем обновлении первичного ключа Access автоматически обновляет все связанные с ним поля.
Может понадобиться удалить строку и все связанные записи — например, запись грузоотправителя и все связанные с ним заказы. Для этого в Access имеется параметр Каскадное удаление связанных записей. Если при обеспечении целостности данных выбрать параметр Каскадное удаление связанных записей, а затем удалить запись на стороне первичного ключа в отношении, Access автоматически удалит все записи со ссылкой на первичный ключ.
Просмотр связей между таблицами
Чтобы просмотреть межтабличные связи, щелкните Схема данных на вкладке Работа с базами данных. Откроется окно «Схема данных», в котором будут отображены все существующие связи. Если связи еще не были определены или это окно открывается впервые, приложение Access предложит добавить в окно таблицу или запрос.
Вызов окна «Схема данных»
Щелкните «Файл», выберите«Открыть», а затем выберите и откройте базу данных.
На вкладке Работа с базами данных в группе Отношения нажмите кнопку Схема данных.
На вкладке Конструктор в группе Связи нажмите кнопку Все связи.
Будут отображены все связи, определенные в базе данных. Обратите внимание на то, что скрытые таблицы (таблицы, для которых установлен флажок скрытый в диалоговом окне Свойства) и их отношения не отображаются, если в диалоговом окне Параметры переходов не выбран параметр Показывать скрытые объекты.
Связь между таблицами представляется как линия между таблицами в окне «Схема данных». Связь, не обеспечивающая целостность данных, отображается как тонкая линия между общими полями, поддерживающими связь. Если выбрать связь, щелкнув линию, то линия станет жирной. Если обеспечить целостность данных для этой связи, линия станет толще на концах. Кроме того, над жирной частью линии с одной стороны связи будет отображаться цифра 1, а с другой стороны — символ бесконечности ( ∞).
Когда открыто окно «Схема данных», на ленте доступны указанные ниже команды.
На вкладке Конструктор в группе Сервис
На вкладке Конструктор в группе Отношения
Добавление таблиц (добавление таблицы в Access 2013 Позволяет показывать в окне «Отношения» выбор таблиц.