Как сделать связь один ко многим в access 2007?

Содержание:

Понятие о целостности данных

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

Предположим, между таблицами «Грузоотправители» и «Заказы» существует связь «один-ко-многим», и нужно удалить грузоотправителя. Если у грузоотправителя, которого нужно удалить, есть заказы в таблице «Заказы, они станут потерянными записями после удаления записи грузоотправителя. В таблице «Заказы» останется код грузоотправителя, но он будет недействителен, поскольку запись, на которую он ссылается, уже не существует.

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

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

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

Глава 3. Связи в access

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

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

Рис. 3.1.

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

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

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

!!! Поля связи могут иметь разные имена,
но они должны иметь один тип данных и
иметь однотипное содержимое.

Исключение из этого правила: поле типа
Счетчик можно связывать с числовым
полем, имеющим в свойстве Размер поля
значение «Длинное целое». Кроме того,
связываемые поля числового типа должны
иметь одинаковые значения свойстваРазмер поля.

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

1. Связь типа «один-ко-многим»

Описанная выше связь между
таблицами Студенты и Сессия — пример
связи типа «один-ко-многим».
Это наиболее распространенный тип
связи.

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

2. Связь типа «один-к-одному»

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

Этот тип связи применяется реже, так
как такие данные могут быть помещены в
одну таблицу. Связь типа «один-к-одному»
обычно используют для разделения таблиц,
имеющих много полей, а также для сохранения
сведений, относящихся к подмножеству
записей в главной таблице. Например,
такой тип связи использован при
установлении связей между таблицами
Студенты и Общежитие (см. рис.3.2).

Рис. 3.2. Связи между таблицами в БД Деканат

Показывать строки, в которых есть общее значение в обеих Объединенных таблицах

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

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

Как использовать внутреннее соединение?

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

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

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

Синтаксис SQL для внутреннего соединения

Внутренние соединения задаются в SQL в предложении FROM, как показано ниже.

FROM таблица1 INNER JOIN таблица2 ON таблица1.field1 сравнить Table2.поле2

Операция INNER JOIN состоит из следующих элементов:

Дополнительные параметры форматирования

Чтобы просмотреть дополнительные параметры форматирования, нажмите стрелку форматирования Datasheet в нижнем правом углу группы форматирования текста.

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

В конечном итоге у Вас изменится вид таблицы и станет напоминать Excel.

Новые статьи

  • Проектирование собственной базы данных в Access — 21/08/2018 15:16
  • Форматирование форм в Access — 21/08/2018 15:11
  • Создание форм в Access — 21/08/2018 15:05
  • Изменение таблиц в Access — 21/08/2018 14:58
  • Дополнительные параметры отчета в Access — 21/08/2018 14:48
  • Создание отчетов в Access — 21/08/2018 14:42
  • Дополнительные параметры дизайна запроса в Access — 21/08/2018 14:36
  • Проектирование запроса в Access — 21/08/2018 04:49
  • Сортировка и фильтрация записей в Access — 21/08/2018 04:37
  • Работа с формами в Access — 21/08/2018 04:25

Предыдущие статьи

  • MS Access — Управление базами данных и объектами — 30/03/2018 16:18
  • Начало работы в Access. Знакомство с Access 2010 — 10/02/2018 18:24
  • MS Access: Введение в объекты — Таблицы, формы, запросы и отчеты — 07/02/2018 08:32
  • MS Access: Что такое база данных? Отличие Access от Excel. — 03/02/2018 18:18

Отношение «один-к-одному»

Отношение или связь «один-к-одному» связывает одну запись таблицы с одной или не связывает ни с одной записью другой таблицы. Иногда этот тип отношения применяется для разбиения таблицы с большим количеством полей на две или несколько меньших таблиц.

Таблица Products (изделия) может содержать подробную информацию, описывающую изделие и его цену, и дополнительные сведения об особенностях его производства.

Эти сведения интересны только сотрудникам инженерно-технических подразделений, поэтому их можно перенести в отдельную таблицу (названную, например, ProductsEngineering (технические характеристики изделия). Это та информация, которая не должна интересовать продавцов при оформлении заказов.

В другой ситуации можно разбить таблицу на две, просто потому что она слишком велика. (Программа Access не разрешает таблице иметь более 255 полей.)

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

Программа помещает цифру 1 на концах линии связи для того, чтобы отличать ее от других типов связей.

В этом примере столбец ID в таблице Products и столбец ID в таблице ProductsEngineering — первичные ключи соответствующих таблиц, поэтому невозможно связать несколько записей таблицы ProductsEngineering с одной и той же записью таблицы Products

создается так же, как отношение «один-ко-многим» — перетаскиванием с помощью мыши полей на вкладке Схема данных (рис. 5.15). Единственная

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

Примечание

В поле запрещены совпадения, если оно является первичным ключом таблицы (см. разд. «Первичный ключ» главы 2) или если у поля есть индекс, препятствующий появлению дублирующейся информации (см. разд. «Предотвращение дублирования значений с помощью индексов» главы 4).

Применяйте связи «один-к-одному» с осторожностью

Отношения «один-к-одному» крайне редко применяются в программе Access. Обычно гораздо удобнее использовать скрытие столбцов (см. разд. «Скрытие столбцов» главы 3) и запросы (см. главу 6), если вы хотите видеть только отдельные поля таблицы.

•    Две части таблицы необходимо поместить в отдельные БД (см. разд. «Что такое разделенная БД» главы 18) для того, чтобы разные люди могли копировать их на разные компьютеры и редактировать независимо.

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

•    У вас есть таблица с огромным объемом данных, таких как поля типа Вложение (см. разд. «Вложение» главы 2) с большими документами. В этом случае можно повысить производительность, если разделить таблицу. Вы даже можете решить, что лучше поместить половину таблицы в отдельную БД (см, разд. «Что такое разделенная БД» главы 18).

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

Если у вас нет таких ситуаций, вы больше выиграете от создания одной большой таблицы.

Отношение «многие-ко-многим»

Отношение или связь «многие-ко-многим»связывает одну или несколько записей одной таблицы с одной или несколькими записями в другой таблице. Рассмотрим БД, в которой в отдельных таблицах хранятся данные об авторах и книгах.

Авторы бестселлеров не останавливаются на одной книге (поэтому вы должны иметь возможность связать одного автора с несколькими книгами).

Однако иногда авторы объединяются в команду под одним заглавием (поэтому вы должны иметь возможность связать одну книгу с несколькими авторами).

Аналогичная ситуация возникает, если нужно распределить студентов по курсам, сотрудников по комитетам или ингредиенты по рецептам. Можно даже представить подобную ситуацию и в случае БД с куклами-болванчиками, если несколько изготовителей решат объединиться для изготовления одной куклы-болванчика.

Связи «многие-ко-многим» довольно распространены, и программа Access предоставляет два способа их обработки.

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

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

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

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

Примечание: Вы можете легко узнать, какая таблица является левой или правой таблицей в данном соединении, дважды щелкнув соединение и просматривая диалоговое окно » Свойства объединения «. Вы также можете переключиться в режим SQL, а затем проверить предложение FROM.

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

Как использовать внешнее соединение?

Вы создаете внешнее соединение, изменяя существующее внутреннее соединение. Если внутреннее соединение не существует, создайте его, а затем измените на внешнее соединение.

Изменение внутреннего объединения на внешнее соединение

В режиме конструктора запроса дважды щелкните соединение, которое вы хотите изменить.

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

В диалоговом окне Свойства объединения Обратите внимание на варианты, указанные в разделе Параметры 2 и 3. Выберите нужный вариант и нажмите кнопку ОК

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

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

Неоднозначные внешние соединения

Если вы создаете запрос с левым СОЕДИНЕНИЕм и ВНУТРЕННим СОЕДИНЕНИЕм, Access не сможет определить, какую операцию соединения нужно выполнить в первую очередь. Так как результаты различаются в зависимости от того, выполняется ли левое соединение или внутреннее соединение, Access выводит сообщение об ошибке:

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

Синтаксис SQL для внешнего соединения

Внешние соединения задаются в SQL в предложении FROM, как показано ниже.

FROM Таблица1 Join Таблица2для Table1. field1 Compare Table2. поле2

Операции LEFT JOIN и RIGHT JOIN состоят из следующих элементов:

Имена таблиц, содержащих объединяемые записи.

Имена Объединенных полей. Поля должны быть одного и того же тип данных и содержать данные одного и того же типа, но они не должны иметь одинакового имени.

Любой оператор сравнения: (=, , = или <>)

Дополнительные сведения о синтаксисе OUTER JOIN можно найти в разделе Выполнение операций соединения LEFT JOIN и RIGHT JOIN.

Ключи в Access

Поля, которые формируют связь между таблицами в Access, называют ключами. Как правило, ключ состоит из одного поля, но может включать и несколько. Существуют 2 вида ключей.
1. Первичный. Он может быть в таблице только один. Такой ключ состоит из одного либо нескольких полей, однозначно определяющих каждую запись в таблице. Нередко в качестве первичного ключа применяют уникальный идентификатор, код либо порядковый номер. К примеру, в таблице «Клиенты» можно назначить уникальный код клиента каждому клиенту. Поле кода клиента в таком случае будет являться первичным ключом данной таблицы. Если же первичный ключ состоит из нескольких полей, он обычно включает уже существующие поля, которые формируют уникальные значения в сочетании друг с другом. Допустим, в таблице с информацией о людях в качестве первичного ключа мы можем использовать сочетание фамилии, даты рождения и имени.
2. Внешний ключ. В таблице также могут быть несколько внешних ключей (либо один). Этот ключ содержит значения, которые соответствуют значениям первичного ключа другой таблицы. К примеру, в таблице «Заказы» каждый заказ может включать код клиента, который соответствует конкретной записи в таблице «Клиенты». А поле «Код клиента» будет внешним ключом таблицы «Заказы».

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

Если мы хотим связать каждый заказ с клиентом, мы можем добавить в таблицу «Заказы» поле внешнего ключа, которое соответствует полю «Код» в нашей таблице «Заказчики», после чего создать связь между данными 2-мя ключами. В случае добавления записи в таблицу «Заказы» мы могли бы использовать значение кода клиента из нашей таблицы «Заказчики». Тогда во время просмотра каких-нибудь данных о клиенте, который сделал заказ, связь позволила бы определить, какие именно данные из нашей таблицы «Заказчики» соответствуют тем либо иным записям в нашей таблице «Заказы»:

  1. Первичный ключ, определяемый по знаку ключа рядом с именем поля.
  2. Внешний ключ, определяемый по отсутствию знака ключа.

Алиасы

Согласитесь, в прошлом примере пришлось довольно много букв написать. Чтобы этого избежать, в запросах можно использовать алиасы для имён таблиц. Для этого после имени таблицы можно написать AS alias. Давайте для таблицы users зададим алиас — u, а для таблицы profiles — p. Эти алиасы теперь можно использовать в любой части запроса:

Заметьте, запрос сократился. Писать запрос с использованием алиаса быстрее.

Как уже говорилось выше, алиас можно использовать в любой части запроса, в том числе и в условии WHERE:

Один-ко-многим

При такой связи одной записи в одной таблице соответствует несколько записей в другой. В начале этого урока мы рассмотрели как раз такой пример, когда говорили о добавлении в таблицу с новостями поля author_id. Таким образом, у каждой статьи есть один автор. В то же время у одного автора может быть несколько статей.
Давайте создадим таблицу для статей. Пусть в ней будет идентификатор статьи, её название, текст, и идентификатор автора.

Добавим несколько статей:

Запросим теперь эти записи, чтобы убедиться, что всё ок

Давайте теперь выведем имена статей вместе с авторами. Для этого снова воспользуемся оператором INNER JOIN.

Как видим, у Ивана две статьи, и ещё одна у Ольги.

Если бы мы захотели на странице со статьей выводить рядом с автором краткую информацию о нем, нам нужно было бы сделать ещё один JOIN на табличку profiles.

Изи!

Создание и изменение отношений 1:N между сущностями

Откройте обозреватель решений.

В разделе Компоненты раскройте узел Сущности, затем раскройте сущность, с которой требуется работать.

Выберите Отношения 1:N.

Чтобы изменить отношение или просмотреть сведения для отношения, выберите отношение и нажмите на панели инструментов «Действия» кнопку Другие действия, затем выберите Изменить.
— ИЛИ —
Чтобы добавить новое отношение, выберите Создать отношение «один ко многим».

Важно!
Если кнопка Создать отношение «один ко многим» не отображается на панели инструментов «Действия», то создать отношение 1:N для этой сущности невозможно.

Для нового отношения в разделе Определение отношения выберите в списке Связанная сущность сущность для связывания.

Примечание
При указании связанной сущности задается значение по умолчанию в поле Имя. Если изменить связанную сущность перед ее сохранением, соответственно изменится и значение поля Имя.

Выберите, будет ли это поле доступно для поиска или нет.

В разделе Поле поиска укажите значение для поля в поле Отображаемое имя.

Важно!
При указании значения Отображаемое имя задается значение по умолчанию в поле Имя

Если изменить Отображаемое имя поля поиска перед сохранением данных, значение в поле Имя не изменится. Поэтому необходимо ввести в поле Имя информативное значение перед сохранением данных.

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

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

В разделе Поведение отношений выберите в списке Тип отношений один из следующих вариантов.

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

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

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

Настраиваемое каскадное. В настраиваемом каскадном отношении между двумя сущностями выбирается поведение, связанное с каждым из наборов возможных действий.

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

Дополнительные сведения:

  1. Выберите Сохранить и закрыть, чтобы закрыть форму Отношение.

  2. Выполнив настройки, опубликуйте их:

    • Чтобы опубликовать настройки только для компонента, изменяемого в данный момент, на панели инструментов «Действия» выберите Опубликовать.

    • Чтобы опубликовать настройки для всех неопубликованных компонентов одновременно, на панели навигации или в области переходов выберите Сущности, затем на панели инструментов «Действия» выберите Опубликовать все настройки.

Примечание

  • Настраиваемая сущность не может быть основной в каскадном отношении со связанной системной сущностью. Это означает, что между основной настраиваемой сущностью и связанной системной сущностью не может быть отношений с каким-либо из действий, установленным в «Передавать всем», «Передавать активным» или «Передавать владельцу».
  • У новых отношений действие не может иметь значение Передавать всем, Передавать активным или Передавать владельцу, если связанная сущность в этом отношении уже является связанной сущностью в любом другом отношении, действие которого имеет значение Передавать всем, Передавать активным или Передавать владельцу. Это позволяет избежать создания отношений с несколькими родительскими сущностями.
  • После каждого изменения элементов пользовательского интерфейса или внедрения скриптов формы для сущности необходима публикация изменений. Все изменения в схеме данных приложения, таких как настраиваемые сущности, связи или поля, применяются сразу.
  • Если отношение является частью управляемого решения, разработчик решения может ограничить настройку отношения пользователями.
  • Установка решения или публикация настроек может помешать нормальной работе системы. Рекомендуется запланировать импорт решения в оптимальный для пользователей период.

Объекты и ограничения DataRelation

DataRelationОбъект также используется для создания и принудительного применения следующих ограничений.

  • Ограничение UNIQUE, которое гарантирует, что столбец в таблице не содержит дубликатов.

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

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

Ограничение UNIQUE реализуется либо путем простого присвоения Unique свойству столбца данных значения или путем добавления экземпляра UniqueConstraint класса к DataRelation ParentKeyConstraint свойству объекта. Сведения о приостановке ограничений в наборе данных см. в разделе Отключение ограничений при заполнении набора данных.

Правила ссылочной целостности

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

  • При обновлении родительской записи

  • При удалении родительской записи

  • Когда изменение принято или отклонено

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

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

Дополнительные сведения об обновлениях в таблицах наборов данных см. в разделе Сохранение данных в базе данных.

Отношения только для ограничений

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

Редактирование записей

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

Чтобы заменить слово в записи:

Вы можете редактировать несколько вхождений одного и того же слова, используя Find и Replace, который ищет термин и заменяет его другим термином.

  1. 1. Выберите вкладку «Главная» и найдите группу «Найти».
  1. 2. Выберите команду «Заменить». Появится диалоговое окно «Найти и заменить».
  1. 3. Нажмите поле «Найти»: и введите слово, которое вы хотите найти.
  1. 4. Нажмите кнопку «Заменить с» и введите слово, которое вы хотите заменить оригинальным словом.
  1. 5. Нажмите стрелку «Вниз»: выберите область, которую вы хотите найти.
  1. Выберите «Текущее поле», чтобы ограничить поиск выбранным в данный момент полем.
  1. Выберите текущий документ для поиска по всей таблице.
  1. 6. Нажмите стрелку раскрывающегося списка Match: выберите, насколько близко вы хотите, чтобы результаты соответствовали вашему поиску.
  1. Выберите любую часть поля для поиска поискового запроса в любой части ячейки.
  1. Выберите «Всего полей» для поиска только для ячеек, которые соответствуют вашему поисковому запросу.
  1. Выберите «Начало поля» для поиска только для ячеек, которые начинаются с вашего поискового запроса.
  1. 7. Нажмите «Найти далее», чтобы найти следующее вхождение поискового запроса.
  1. 8. Нажмите «Заменить», чтобы заменить исходное слово на новое.

Хотя вы можете использовать Replace All для замены каждого экземпляра термина, заменяя его по одному, вы можете быть абсолютно уверены, что редактируете только нужные вам данные. Замена данных непреднамеренно может негативно повлиять на вашу базу данных.

Чтобы удалить запись:

  1. 1. Выберите всю запись, нажав серая рамка в левой части записи.
  1. 2. Выберите вкладку «Главная» и найдите группу «Записи».
  1. 3. Нажмите команду Удалить. Запись будет удалена навсегда.

Идентификационные номера, присвоенные записям, остаются неизменными даже после удаления записи. Например, если вы удалите 34-ю запись в таблице, последовательность идентификационных номеров записей будет читать … 32, 33, 35, 36 … а не … 32, 33, 34, 35, 36 .. ,

Разрыв связи между таблицами

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

Способ 1: разрыв связи между книгами

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

  1. В книге, в которой подтягиваются значения из других файлов, переходим во вкладку «Данные». Щелкаем по значку «Изменить связи», который расположен на ленте в блоке инструментов «Подключения». Нужно отметить, что если текущая книга не содержит связей с другими файлами, то эта кнопка является неактивной.

Запускается окно изменения связей. Выбираем из списка связанных книг (если их несколько) тот файл, с которым хотим разорвать связь. Щелкаем по кнопке «Разорвать связь».

Открывается информационное окошко, в котором находится предупреждение о последствиях дальнейших действий. Если вы уверены в том, что собираетесь делать, то жмите на кнопку «Разорвать связи».

После этого все ссылки на указанный файл в текущем документе будут заменены на статические значения.

Способ 2: вставка значений

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

  1. Выделяем диапазон, в котором желаем удалить связь с другой таблицей. Щелкаем по нему правой кнопкой мыши. В раскрывшемся меню выбираем пункт «Копировать». Вместо указанных действий можно набрать альтернативную комбинацию горячих клавиш Ctrl+C.

Далее, не снимая выделения с того же фрагмента, опять кликаем по нему правой кнопкой мыши. На этот раз в списке действий щелкаем по иконке «Значения», которая размещена в группе инструментов «Параметры вставки».

После этого все ссылки в выделенном диапазоне будут заменены на статические значения.

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

Опишите, что у вас не получилось.
Наши специалисты постараются ответить максимально быстро.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector