Посібник зі зв’язків між таблицями

Метою правильної розробки таблиць є видалення надлишкових (повторюваних) даних. Для досягнення цієї мети таблицю розділяють на багато тематичних таблиць, щоб кожний факт було представлено тільки один раз. Потім в Microsoft Office Access 2007 - Українська версія створюються засоби, за допомогою яких ці розділені дані можна зібрати разом — для цього потрібно вставити в пов’язані між собою таблиці спільні поля. Проте для того, щоб зробити це належним чином, необхідно спочатку зрозуміти, які зв’язки існують між таблицями, після чого вказати ці зв’язки в базі даних Office Access 2007.

Для отримання додаткових відомостей див. статтю Основи розробки баз даних.

У цій статті


Вступ

Після створення таблиці для кожного предмета бази даних в Office Access 2007 необхідно створити засоби, за допомогою яких ці дані, за потреби, можна зібрати разом. Для цього в пов’язані між собою таблиці потрібно вставити спільні поля й установити зв’язки між цими таблицями. Потім можна створювати запити, форми та звіти, які відображатимуть дані одночасно з кількох форм. Наприклад, наведена тут форма містить дані, отримані з кількох таблиць.

Форма замовлення, в якій відображаються пов’язані між собою дані одночасно з п’яти різних таблиць

Виноска 1 Дані до цієї форми надходять із таблиці «Клієнти»...
Виноска 2 ...таблиці «Замовлення»...
Виноска
3 ...таблиці «Товари»...
Виноска 4 ...і таблиці «Відомості про замовлення».

Ім’я клієнта в полі Рахунок для надходить із таблиці «Клієнти», значення ідентифікатора замовлення та дати замовлення — з таблиці «Замовлення», назва товару — з таблиці «Товари», а значення вартості одиниці та кількості  — з таблиці «Відомості про замовлення». Ці таблиці зв’язані між собою різними способами, завдяки чому у формі можна об’єднати дані з кожної таблиці.

У попередньому прикладі поля таблиць мають узгоджуватися між собою таким чином, щоб у них відображалися дані щодо одного й того ж замовлення. Така узгодженість досягається за допомогою зв’язків між таблицями. Принцип роботи зв’язків полягає в зіставленні даних у полях ключів — часто такі поля мають однакові імена в обох таблицях. У більшості випадків поля, що збігаються — це первинний ключ однієї таблиці, який створює унікальний ідентифікатор для кожного запису, і зовнішній ключ іншої таблиці. Наприклад, з працівниками можна зіставити замовлення, за які вони відповідають, створивши зв’язок між полями «Ідентифікатор працівника» в таблицях «Працівники» та «Замовлення».

Поле «Ідентифікатор працівника», що використовується як первинний ключ у таблиці «Працівники» та як зовнішній ключ у таблиці «Замовлення».

Виноска 1 Поле «Ідентифікатор працівника» відображається в обох таблицях — як первинний ключ...
Виноска 2 ... і як зовнішній ключ.

На початок сторінки На початок сторінки

Типи зв’язків між таблицями

Існує три типи зв’язків між таблицями.

  • Зв’язок «один-до-багатьох»

Розглянемо базу даних відстеження замовлень, яка включає таблицю «Клієнти» й таблицю «Замовлення». Клієнт може розмістити будь-яку кількість замовлень. Таким чином, для будь-якого клієнта, представленого в таблиці «Клієнти», в таблиці «Замовлення» може міститися багато замовлень. Отже, взаємозв’язок між таблицями «Клієнти» та «Замовлення» є зв’язком «один-до-багатьох».

Щоб представити зв’язок «один-до-багатьох» у структурі власної бази даних, візьміть первинний ключ на стороні зв’язку «один» і вставте його як додаткове поле або поля в таблицю на стороні зв’язку «багато». У цьому разі, наприклад, нове поле — поле ідентифікатора з таблиці «Клієнти» — потрібно додати до таблиці «Замовлення» та назвати його «Ідентифікатор клієнта». Потім Access зможе використати номер із поля «Ідентифікатор клієнта» в таблиці «Замовлення» для пошуку користувачів, які відповідають певним замовленням.

  • Зв’язок «багато-до-багатьох»

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

Для представлення зв’язку «багато-до-багатьох» потрібно створити третю таблицю, яку часто називають розподільною, щоб розділити зв’язок «багато-до-багатьох» на два зв’язки «один-до-багатьох». Первинний ключ із кожної з двох таблиць потрібно вставити в третю таблицю. У результаті в третій таблиці буде записано усі випадки, або екземпляри, зв’язків. Наприклад, таблиці «Замовлення» та «Товари» пов’язані зв’язком «багато-до-багатьох», який визначатиметься через створення двох зв’язків «один-до-багатьох» із таблицею «Відомості про замовлення». В одному замовленні може зустрічатися багато товарів, і кожний товар може зустрічатися в багатьох замовленнях.

  • Зв’язок «один-до-одного»

У зв’язку «один-до-одного» кожному запису в першій таблиці може відповідати лише один запис у другій таблиці, а кожному запису в другій таблиці може відповідати лише один запис у першій таблиці. Цей тип зв’язку не дуже поширений, оскільки зазвичай відомості, пов’язані між собою в такий спосіб, зберігаються в одній таблиці. Зв’язок «один-до-одного» можна використовувати для розділення таблиці з великою кількістю полів, для відокремлення частини таблиці з міркувань безпеки або для зберігання даних, які застосовуються лише до підмножини головної таблиці. У разі визначення такого зв’язку обидві таблиці повинні мати спільні поля.

На початок сторінки На початок сторінки

Навіщо створювати зв’язки між таблицями?

Зв’язки таблиці можна створювати явно, використовуючи вікно «Зв’язки», або перетягуванням полів з області Список полів. В Office Access 2007 зв’язки між таблицями використовуються для визначення способу об’єднання таблиць у тих випадках, коли їх потрібно використати в об’єкті бази даних. Існує кілька причин для створення зв’язків між таблицями перед створенням інших об’єктів бази даних, таких як форми, запити й звіти.

  • Зв’язки між таблицями розкривають структуру запитів

Для роботи з записами, отриманими з кількох таблиць, часто потрібно створити запит, який об’єднуватиме таблиці. Робота запиту полягає в зіставленні значень у полі первинного ключа першої таблиці зі значеннями в полі зовнішнього ключа другої таблиці. Наприклад, для повернення рядків, у яких перелічуватимуться всі замовлення кожного клієнта, слід побудувати запит, який об’єднуватиме таблицю «Клієнти» з таблицею «Замовлення» на основі поля «Ідентифікатор клієнта». У вікні «Зв’язки» можна вручну вказати поля для об’єднання. Проте, якщо між таблицями вже встановлено зв’язки, Office Access 2007 запропонує об’єднання за промовчанням, створене на основі наявного зв’язку між таблицями. Крім того, в разі використання одного з майстрів запитів програма Access використовує дані, зібрані нею про вже задані зв’язки між таблицями, для подання обґрунтованих варіантів вибору та попереднього заповнення властивостей відповідними значеннями за промовчанням.

  • Зв’язки між таблицями розкривають структуру форм і звітів

Під час створення форми або звіту програма Office Access 2007 використовує дані, зібрані нею про вже задані зв’язки між таблицями, для подання обґрунтованих варіантів вибору та попереднього заповнення властивостей відповідними значеннями за промовчанням.

  • Зв’язки між таблицями є основою для застосування цілісності даних, завдяки чому можна запобігти виникненню в базі даних відірваних записів. Відірваний запис — це запис із посиланням на інший запис, якого не існує, наприклад, запис про замовлення, який посилається на відсутній запис про користувача.

Під час створення бази даних усі відомості поділяються на таблиці, кожна з яких має первинний ключ. Потім до пов’язаних таблиць можна додати зовнішній ключ, який посилатиметься на ці первинні ключі. Такі пари «зовнішній ключ-первинний ключ» створюють основу для зв’язків між таблицями та багатотабличних запитів. Тому важливо, щоб посилання «зовнішній ключ-первинний ключ» постійно синхронізувалися. Цілісність даних допомагає забезпечити синхронізацію посилань і залежить від зв’язків між таблицями.

На початок сторінки На початок сторінки

Знайомство з поняттям цілісності даних

Під час створення бази даних усі дані поділяються на кілька тематичних таблиць для мінімізації надлишковості даних. Потім в Office Access 2007 створюються засоби, за допомогою яких ці розрізнені дані можна зібрати разом, розмістивши в пов’язаних між собою таблицях спільні поля. Наприклад, для представлення зв’язку «один-до-багатьох» потрібно взяти первинний ключ із таблиці «один» і вставити його як додаткове поле до таблиці «багато». Щоб знову зібрати дані разом, Access бере значення з таблиці «багато» та шукає відповідне значення в таблиці «один». Таким чином, значення в таблиці «багато» посилаються на відповідні значення в таблиці «один».

Припустімо, що між таблицями «Служби доставки» та «Замовлення» існує зв’язок «один-до-багатьох». Якщо для служби доставки, яку потрібно видалити, в таблиці «Замовлення» містяться замовлення, ці замовлення після видалення запису «Служба доставки» стануть «відірваними». Замовлення й надалі міститимуть ідентифікатор служби доставки, але ідентифікатор уже буде недійсним, оскільки запису, на який він посилається, більше не існує.

Мета цілісності даних — уникнути відірваності даних і забезпечити синхронізацію посилань таким чином, щоб ця гіпотетична ситуація не могла скластися взагалі.

Цілісність даних забезпечується через увімкнення її для зв’язку між таблицями (покрокові інструкції див. у розділі Застосування цілісності даних). Після застосування програма Access відхилятиме будь-які операції, які можуть призвести до порушення цілісності даних у такому зв’язку між таблицями. Це означає, що Access відхилятиме як оновлення, так і видалення, якщо вони впливають на призначення посилань. Проте може статися, що для змінення первинного ключа служби доставки, якій відповідає замовлення в таблиці «Замовлення», існуватимуть усі підстави. Усе, що потрібно в таких випадках, — зробити так, щоб усі задіяні рядки автоматично оновлювалися в межах однієї операції. Таким чином, Access забезпечить виконання повного оновлення, а база даних не залишиться в неузгодженому стані, коли деякі рядки оновлено, а деякі ні. Для цього в Access є параметр «Каскадне оновлення пов’язаних полів». Якщо застосувати цілісність даних і вибрати параметр «Каскадне оновлення пов’язаних полів», а потім оновити первинний ключ, Access автоматично оновить усі поля, які посилаються на первинний ключ.

Крім того, може виникнути потреба для видалення рядка та всіх пов’язаних із ним записів — наприклад, запису «Служба доставки» та всіх замовлень, пов’язаних із цією службою доставки. Для цього в Access є параметр «Каскадне видалення пов’язаних полів». Якщо застосувати цілісність даних і вибрати параметр «Каскадне видалення пов’язаних полів», а потім видалити запис на стороні зв’язку, яка відповідає первинному ключу, Access автоматично видалить усі поля, які посилаються на первинний ключ.

На початок сторінки На початок сторінки

Перегляд зв’язків між таблицями

Щоб переглянути зв’язки між таблицями, натисніть кнопку Зв’язки на вкладці Знаряддя бази даних. Відкриється вікно «Зв’язки», в якому відображаються всі наявні зв’язки. Якщо зв’язки між таблицями ще не задано, а вікно «Зв’язки» відкривається вперше, Access запропонує додати до вікна таблицю або запит.

Відкриття вікна «Зв’язки»

  1. Натисніть кнопку Microsoft Office Рисунок на кнопці і виберіть пункт Відкрити.
  1. У діалоговому вікні Відкрити виберіть і відкрийте базу даних.
  2. На вкладці Знаряддя бази даних у групі Відобразити або приховати клацніть елемент Зв'язки.

Зображення стрічки Access

  1. Якщо база даних містить зв’язки, відображається вікно «Зв’язки». Якщо база даних не містить жодних зв’язків, а вікно «Зв’язки» відкривається вперше, відображається діалогове вікно Відображення таблиці. Натисніть кнопку Закрити для закриття діалогового вікна.
  2. На вкладці Конструктор у групі Зв'язки клацніть елемент Усі зв'язки.

У результаті відображаються всі зв’язки, визначені в базі даних. Зауважте, що приховані таблиці (таблиці, для яких у діалоговому вікні Властивості встановлено прапорець Прихований) не відображатимуться, якщо в діалоговому вікні Параметри переходів не встановити прапорець Приховані об’єкти.

Для отримання додаткових відомостей про параметр «Приховані об’єкти» див. статтю Посібник з області переходів.

Вікно «Зв’язки»

Виноска 1 Первинний ключ
Виноска 2 Лінія позначає зв’язок
Виноска
3 Зовнішній ключ

Зв’язок між таблицями зображається за допомогою лінії зв’язку, яка з’єднує таблиці у вікні «Зв’язки». Зв’язки, для яких не застосовується цілісність даних, зображаються тонкою лінією, яка з’єднує спільні поля, що підтримують зв’язок. Якщо вибрати зв’язок, клацнувши його лінію, лінія стане товстішою для позначення її як вибраної. Якщо для цього зв’язку застосувати цілісність даних, лінія стане товстішою з обох кінців. Крім того, над товстішим відрізком лінії з одного боку відображається цифра 1, а над товстішим відрізком лінії з іншого боку — знак нескінченності ().

Поки вікно «Зв’язки» залишається активним, на стрічці (частині Інтерфейс користувача Microsoft Office Fluent) можна вибрати такі команди:

На вкладці Конструктор у групі Знаряддя:

  • Змінити зв’язки    Відкриває діалогове вікно Редагування зв’язків . Вибравши лінію зв’язку, можна вибрати команду Редагування зв’язків, щоб змінити зв’язок таблиці. Крім того, можна двічі клацнути лінію зв’язку.
  • Очистити макет    Видаляє всі таблиці та зв’язки, що відображаються у вікні «Зв’язки». Зауважте, що ця команда лише приховує таблиці та зв’язки — самі вони не видаляються.
  • Звіт про зв’язки    Створює звіт, у якому відображаються таблиці та зв’язки в базі даних. У звіті відображаються лише ті таблиці та зв’язки, які не було приховано у вікні «Зв’язки».

На вкладці Конструктор, у групі Зв’язок:

  • Відобразити таблицю    Відкриває діалогове вікно Відображення таблиці, за допомогою якого можна вибрати таблиці та запити для перегляду у вікні «Зв’язки».
  • Приховати таблицю    Приховує вибрану таблицю у вікні «Зв’язки».
  • Прямі зв’язки    Відображає всі зв’язки та пов’язані таблиці для вибраної таблиці у вікні «Зв’язки», якщо вони ще не відображаються.
  • Усі зв’язки    Відображає всі зв’язки та пов’язані таблиці для вибраної таблиці у вікні «Зв’язки». Зауважте, що приховані таблиці (таблиці, для яких у діалоговому вікні Властивості встановлено прапорець Прихований) не відображатимуться, якщо в діалоговому вікні «Параметри переходів» не встановлено прапорець «Приховані об’єкти».

Для отримання додаткових відомостей про параметр «Приховані таблиці» див. статтю Посібник з області переходів.

  • Закрити    Закриває вікно «Зв’язки». Якщо до макета вікна «Зв’язки» було внесено деякі зміни, програма запропонує зберегти їх.

На початок сторінки На початок сторінки

Створення зв’язку між таблицями

Зв’язок між таблицями можна створити за допомогою вікна «Зв’язки» або перетягуванням поля з області Список полів . Під час створення зв’язку між таблицями спільні поля можуть мати різні імена, хоча часто вони є однаковими. Проте такі поля мають містити дані одного типу. Якщо поле первинного ключа має тип «Автонумерація», зовнішній ключ може бути полем типу «Число», якщо обидва поля мають однакові значення властивості Розмір поля (FieldSize). Наприклад, поля типів «Автонумерація» та «Число» можна зіставляти, якщо властивість Розмір поля (FieldSize) обох полів має значення Long Integer (довге ціле). Якщо обидва спільні поля мають тип «Число», вони повинні мати однакове значення властивості Розмір поля (FieldSize).

Створення зв’язку між таблицями за допомогою вікна «Зв’язки»

  1. Натисніть кнопку Microsoft Office Рисунок на кнопці і виберіть пункт Відкрити.
  1. У діалоговому вікні Відкрити виберіть і відкрийте базу даних.
  2. На вкладці Знаряддя бази даних у групі Відобразити або приховати клацніть елемент Зв'язки.

Зображення стрічки Access

  1. Якщо зв’язки ще не визначено, автоматично відображається діалогове вікно Відображення таблиці. Якщо воно не відображається, на вкладці Конструктор у групі Зв’язок натисніть кнопку Відобразити таблицю.

У діалоговому вікні Відображення таблиці відображаються всі таблиці й запити в базі даних. Щоб переглянути лише таблиці, виберіть вкладку Таблиці. Щоб переглянути лише запити, виберіть вкладку Запити. Для перегляду як таблиць, так і запитів виберіть вкладку Разом.

  1. Виберіть одну або кілька таблиць чи запитів і натисніть кнопку Додати. Закінчивши додавати таблиці й запити до вікна «Зв’язки», натисніть кнопку Закрити.
  2. Перетягніть поле з однієї таблиці (зазвичай це первинний ключ) до спільного поля (зовнішнього ключа) в іншій таблиці. Щоб перетягнути кілька полів, натисніть клавішу CTRL, клацніть потрібні поля, після чого виконайте перетягування.

Відображається діалогове вікно Редагування зв’язків.

  1. Переконайтеся, що відображувані імена полів відповідають спільним полям зв’язку. Якщо ім’я поля неправильне, клацніть його й виберіть зі списку нове поле.

Щоб забезпечити для цього зв’язку цілісність даних, установіть прапорець Забезпечення цілісності даних. Для отримання додаткових відомостей про цілісність даних див. розділи Знайомство з поняттям цілісності даних і Забезпечення цілісності даних.

  1. Натисніть кнопку Створити.

Між двома таблицями буде зображено лінію зв’язку. Якщо встановлено прапорець Забезпечення цілісності даних, лінія на кінцях виглядає товстішою. Крім того, знову ж таки, якщо встановити прапорець Забезпечення цілісності даних, над товстішим відрізком лінії з одного боку відображатиметься число1, а над товстішим відрізком лінії з іншого боку — знак нескінченності ().

Перетягування поля з однієї таблиці до відповідного поля в іншій таблиці

 Примітки 

  • Створення зв’язку «один-до-одного»    Обидва спільні поля (зазвичай, поля первинного та зовнішнього ключів) повинні мати унікальний індекс. Це означає, що для властивостей Індексовано (Indexed) цих полів потрібно встановити значення Так (без повторень) / Yes (No Duplicates). Якщо обидва поля мають унікальні індекси, Access створює зв’язок «один-до-одного».
  • Створення зв’язку «один-до-багатьох»    Поле на стороні зв’язку «один» (зазвичай, первинний ключ) повинно мати унікальний індекс. Це означає, що для властивості Індексовано (Indexed) цього поля потрібно встановити значення Так (без повторень) / Yes (No Duplicates). Поле на стороні «багато» не повинно мати унікальний індекс. Воно може мати індекс, але він має підтримувати повторення. Це означає, що властивість Індексовано (Indexed) повинна мати значення або Ні (No), або Так (повторення дозволені) / Yes (Duplicates OK). Коли одне поле має унікальний індекс, а друге поле такого індексу не має, Access створює зв’язок «один-до-багатьох».

Створення зв’язку таблиці за допомогою області «Список полів»

В Office Access 2007 можна додати поле до наявної таблиці, відкритої в поданні таблиці, перетягнувши його з області Список полів. В області Список полів відображаються поля, доступні у зв’язаних таблицях, а також поля, доступні в інших таблицях. Якщо перетягнути поле з «іншої» (незв’язаної) таблиці, а потім запустити майстер підстановок і виконати його вказівки, між таблицею в області Список полів і таблицею, до якої перетягується поле, буде автоматичного встановлено зв’язок «один-до-багатьох». До цього створеного програмою Access зв’язку цілісність даних за промовчанням не застосовується. Для застосування цілісності даних зв’язок слід відредагувати. Для отримання додаткових відомостей див. розділ Змінення зв’язку між таблицями.

Відкриття таблиці в поданні таблиці

  1. Натисніть кнопку Microsoft Office Рисунок на кнопці і виберіть пункт Відкрити.
  1. У діалоговому вікні Відкрити виберіть і відкрийте базу даних.
  2. В області переходів клацніть правою кнопкою миші таблицю, до якої потрібно додати поле та створити зв’язок, і виберіть у контекстному меню пункт Конструктор.

Відкрийте область «Список полів»

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

Зображення стрічки Access

Відображається область Список полів.

В області Список полів відображаються всі інші таблиці бази даних, згруповані за категоріями. Під час роботи з таблицею в поданні таблиці Access відображає поля в одній із двох категорій області Список полів: Поля, наявні в пов’язаних таблицях і Поля, наявні в інших таблицях. У першій категорії перелічуються всі таблиці, які мають зв’язок із наразі використовуваною таблицею, а в другій категорії — усі таблиці, з якими поточна таблиця не має зв’язків.

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

Додавання поля та створення зв’язку з області «Список полів»

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

Зображення стрічки Access

Відображається область Список полів.

  1. У категорії Поля, наявні в інших таблицях клацніть знак плюс (+), розташований поруч із іменем таблиці, щоб відобразити список полів цієї таблиці.
  2. Перетягніть потрібне поле з області Список полів до таблиці, відкритої в поданні таблиці.
  3. Після появи лінії вставлення відпустіть поле в потрібній позиції.

Буде запущено Майстер підстановок.

  1. Дотримуйтесь інструкцій Майстра підстановок.

Відображається таблиця в поданні таблиці.

Якщо перетягнути поле з «іншої» (незв’язаної) таблиці, а потім запустити майстер підстановок і виконати його вказівки, між таблицею в області Список полів і таблицею, до якої перетягується поле, буде автоматичного встановлено зв’язок «один-до-багатьох». До цього створеного програмою Access зв’язку цілісність даних за промовчанням не застосовується. Для застосування цілісності даних зв’язок слід відредагувати. Для отримання додаткових відомостей див. розділ Змінення зв’язку між таблицями.

На початок сторінки На початок сторінки

Видалення зв’язку між таблицями

Для видалення зв’язку між таблицями потрібно видалити лінію зв’язку у вікні «Зв’язки». Обережно розташуйте курсор таким чином, щоб він указував на лінію зв’язку, після чого клацніть цю лінію. Вибрана лінія зв’язку виглядатиме товстішою. Після вибору лінії зв’язку натисніть клавішу DELETE. Зауважте, що видалення зв’язку призводить також і до видалення підтримки цілісності даних, якщо її було увімкнуто. Внаслідок цього Access більше не запобігатиме в автоматичному режимі створенню відірваних записів на стороні зв’язку «багато».

  1. Натисніть кнопку Microsoft Office Рисунок на кнопці і виберіть пункт Відкрити.
  1. У діалоговому вікні Відкритивиберіть і відкрийте базу даних.
  2. На вкладці Знаряддя бази даних у групі Відобразити або приховати клацніть елемент Зв'язки.

Зображення стрічки Access

Відображається вікно «Зв’язки».

Якщо зв’язки ще не визначено, а вікно «Зв’язки» відкривається вперше, відображається діалогове вікно Відображення таблиці. У разі появи цього діалогового вікна натисніть кнопку Закрити.

  1. На вкладці Конструктор у групі Зв'язки клацніть елемент Усі зв'язки.

Відображаються всі таблиці, які мають зв’язки, з позначенням їх лініями.

  1. Клацніть лінію того зв’язку, який потрібно видалити. Вибрана лінія зв’язку виглядатиме товстішою.
  2. Натисніть клавішу DELETE.

— або —

Клацніть лінію правою кнопкою миші та виберіть команду Видалити.

  1. Може з’явитися повідомлення Справді остаточно видалити вибраний зв’язок із бази даних?. У разі появи цього повідомлення з запитом на підтвердження натисніть кнопку Так.

 Примітка   Якщо одна з таблиць, задіяних у зв’язку, наразі використовується іншим користувачем або процесом, або міститься в відкритому об’єкті бази даних (наприклад, у формі), можливо, зв’язок не можна буде видалити. Перед видаленням зв’язку необхідно спочатку закрити об’єкти, які використовують задіяні таблиці.

На початок сторінки На початок сторінки

Змінення зв’язку між таблицями

Змінити таблицю можна, вибравши її у вікні «Зв’язки» й відредагувавши. Обережно розташуйте курсор таким чином, щоб він указував на лінію зв’язку, після чого клацніть цю лінію, щоб зробити вибір. Вибрана лінія зв’язку виглядатиме товстішою. Після вибору лінії зв’язку двічі клацніть її або натисніть кнопку Змінити зв’язки в групі Знаряддя на вкладці Конструктор. Відображається діалогове вікно Редагування зв’язків.

Внесіть зміни в діалоговому вікні Редагування зв’язків

  1. Натисніть кнопку Microsoft Office Рисунок на кнопці і виберіть пункт Відкрити.
  1. У діалоговому вікні Відкрити виберіть і відкрийте базу даних.
  2. На вкладці Знаряддя бази даних у групі Відобразити або приховати клацніть елемент Зв'язки.

Зображення стрічки Access

Відображається вікно «Зв’язки».

Якщо зв’язки ще не визначено, а вікно «Зв’язки» відкривається вперше, відображається діалогове вікно Відображення таблиці. У разі появи цього діалогового вікна натисніть кнопку Закрити.

  1. На вкладці Конструктор у групі Зв'язки клацніть елемент Усі зв'язки.

Відображаються всі таблиці, які мають зв’язки, з позначенням їх лініями. Зауважте, що приховані таблиці (таблиці, для яких у діалоговому вікні Властивості встановлено прапорець Прихований) не відображатимуться, якщо в діалоговому вікні Параметри переходів не встановлено прапорець «Приховані об’єкти».

Для отримання додаткових відомостей про параметр «Приховані об’єкти» див. статтю Посібник з області переходів.

  1. Клацніть лінію того зв’язку, який потрібно змінити. Вибрана лінія зв’язку виглядатиме товстішою.
  2. Двічі клацніть лінію зв’язку

— або —

На вкладці Конструктор у групі Знаряддя клацніть елемент Редагування зв'язків.

Відображається діалогове вікно Редагування зв’язків.

Діалогове вікно «Редагування зв’язків»

  1. Внесіть зміни та натисніть кнопку ОК.

За допомогою діалогового вікна Редагування зв’язків можна змінювати зв’язки між таблицями. Зокрема, можна змінювати таблиці або запити з будь-якого боку зв’язку, так само як і поля. Можна також установити тип об’єднання або застосувати цілісність даних і вибрати каскадний параметр. Для отримання додаткових відомостей про типи об’єднань і способи їх настроювання див. розділ Настроювання типу об’єднання. Для отримання додаткових відомостей про застосування цілісності даних, способи її застосування та вибір каскадного параметра див. розділ Забезпечення цілісності даних.

Настроювання типу об’єднання

У ході визначення зв’язку між таблицями відомості про зв’язок обумовлюють структуру запиту. Наприклад, якщо визначити зв’язок між двома таблицями, а потім створити запит, який використовуватиме ці таблиці, Access на основі полів, указаних у зв’язку, автоматично вибере поля, що зіставлятимуться за промовчанням. Ці вихідні значення за промовчанням у запиті можна перевизначити, але часто значення, надані зв’язком, виявляються цілком виправданими. Оскільки зіставлення та збирання даних із кількох таблиць у більшості баз даних (за винятком найпростіших) доводиться виконувати доволі часто, настроювання значень за промовчанням через створення зв’язків може заощадити час і принести користь.

Запити з підтримкою багатьох таблиць поєднують дані з кількох таблиць, зіставляючи значення у спільних полях. Операція, під час якої виконується зіставлення та поєднання, називається об’єднанням. Припустімо, наприклад, що потрібно відобразити замовлення клієнтів. Для цього потрібно створити запит, який об’єднуватиме таблицю «Клієнти» з таблицею «Замовлення» за полем «Ідентифікатор клієнта». Результат запиту міститиме відомості про користувача та відомості про замовлення, отримані лише з тих полів, для яких було знайдено потрібний відповідник.

Одним із значень, які можна вказати для кожного зв’язку, є тип об’єднання. Тип об’єднання повідомляє програмі Access, які саме записи слід включати до результату запиту. Розглянемо, наприклад, знову запит, який об’єднує таблиці «Клієнти» та «Замовлення» за спільними полями, що визначають ідентифікатор користувача. У разі використання типу об’єднання за промовчанням (який називається внутрішнім об’єднанням) запит повертає лише ті рядки таблиць «Клієнти» та «Замовлення», значення спільних (або об’єднаних) полів у яких збігаються.

Але припустімо, наприклад, що потрібно включити всіх клієнтів — навіть тих, які ще не розмістили жодного замовлення. Для розв’язання цієї задачі потрібно змінити тип об’єднання із внутрішнього об’єднання на так зване ліве зовнішнє об’єднання. Ліве зовнішнє об’єднання повертає всі рядки таблиці, розташованої на лівому кінці зв’язку, а також лише ті рядки таблиці, розташованої на правому кінці, які збігаються. Праве зовнішнє об’єднання повертає всі рядки таблиці, розташованої праворуч, і лише ті рядки розташованої ліворуч таблиці, які збігаються.

 Примітка   У цьому випадку словами «ліворуч» і «праворуч» позначається положення таблиці в діалоговому вікні Редагування зв’язків, а не у вікні «Зв’язки».

Слід поміркувати над тим, який результат найчастіше вимагається від запиту, що об’єднує таблиці в цьому зв’язку, після чого настроїти відповідний тип об’єднання.

Настроювання типу об’єднання

  1. У діалоговому вікні Редагування зв’язків натисніть кнопку Тип об’єднання.

Відображається діалогове вікно Параметри об’єднання.

  1. Зробіть потрібний вибір і натисніть кнопку ОК.

У нижченаведеній таблиці (яка передбачає використання таблиць «Клієнти» та «Замовлення») показано три варіанти вибору, які відображаються в діалоговому вікні Параметри об’єднання, і тип об’єднання, якому вони відповідають, а також указано, які рядки взято з кожної таблиці — всі чи лише ті, що збігаються.

Вибір Реляційне об’єднання Ліва таблиця Права таблиця
1. Включати лише рядки, де збігаються об’єднані поля з обох таблиць. Внутрішні об’єднання Рядки зі збігами Рядки зі збігами
2. Включити ВСІ записи з «Клієнти» і лише ті записи з «Замовлення», де об’єднані поля рівні. Ліве зовнішнє об’єднання Усі рядки Рядки зі збігами
3. Включити ВСІ записи з «Замовлення» і лише ті записи з «Клієнти», де об’єднані поля рівні. Праве зовнішнє об’єднання Рядки зі збігами Усі рядки

Якщо вибрати варіант 2 або 3, на лінії зв’язку відображається стрілка. Ця стрілка вказує сторону зв’язку, з якої відображаються лише рядки зі збігами.

Внесення змін у діалоговому вікні Параметри об’єднання

  1. Натисніть кнопку Microsoft Office Рисунок на кнопці і виберіть пункт Відкрити.
  1. У діалоговому вікні Відкрити виберіть і відкрийте базу даних.
  2. На вкладці Знаряддя бази даних у групі Відобразити або приховати клацніть елемент Зв'язки.

Зображення стрічки Access

Відображається вікно «Зв’язки».

Якщо зв’язки ще не визначено, а вікно «Зв’язки» відкривається вперше, відображається діалогове вікно Відображення таблиці. У разі появи цього діалогового вікна натисніть кнопку Закрити.

  1. На вкладці Конструктор у групі Зв'язки клацніть елемент Усі зв'язки.

Відображаються всі таблиці, які мають зв’язки, з позначенням їх лініями. Зауважте, що приховані таблиці (таблиці, для яких у діалоговому вікні Властивості встановлено прапорець Прихований) не відображатимуться, якщо в діалоговому вікні «Параметри переходів» не встановлено прапорець «Приховані об’єкти».

Для отримання додаткових відомостей про параметр «Приховані об’єкти» див. статтю Посібник з області переходів.

  1. Клацніть лінію того зв’язку, який потрібно змінити. Вибрана лінія зв’язку виглядатиме товстішою.
  2. Двічі клацніть лінію зв’язку

— або —

На вкладці Конструктор у групі Знаряддя клацніть елемент Редагування зв'язків.

Відображається діалогове вікно Редагування зв’язків.

  1. Натисніть кнопку Тип об’єднання
  2. У діалоговому вікні Параметри об’єднання виберіть параметр і натисніть кнопку ОК.

Діалогове вікно «Параметри об’єднання»

  1. Внесіть додаткові зміни у зв’язок і натисніть кнопку ОК.

На початок сторінки На початок сторінки

Забезпечення цілісності даних

Мета використання цілісності даних полягає в запобіганні створенню відірваних записів і в забезпеченні їх синхронізації, щоб жоден із записів не посилався на записи, яких не існує. Цілісність даних забезпечується через увімкнення її для зв’язку таблиці. Після застосування цілісності Access відхилятиме будь-які операції, які можуть призвести до порушення цілісності даних для цього зв’язку таблиці. Програма відхилятиме як оновлення, так і видалення, які впливають на призначення посилань. Відомості про те, як забезпечити узгоджене змінення всіх пов’язаних рядків програмою Access під час оновлення й видалення посилань, див. у розділі Настроювання каскадних параметрів.

Увімкнення або вимкнення цілісності даних

  1. Натисніть кнопку Microsoft Office Рисунок на кнопці і виберіть пункт Відкрити.
  1. У діалоговому вікні Відкрити виберіть і відкрийте базу даних.
  2. На вкладці Знаряддя бази даних у групі Відобразити або приховати клацніть елемент Зв'язки.

Зображення стрічки Access

Відображається вікно «Зв’язки».

Якщо зв’язки ще не визначено, а вікно «Зв’язки» відкривається вперше, відображається діалогове вікно Відображення таблиці. У разі появи цього діалогового вікна натисніть кнопку Закрити.

  1. На вкладці Конструктор у групі Зв'язки клацніть елемент Усі зв'язки.

Відображаються всі таблиці, які мають зв’язки, з позначенням їх лініями. Зауважте, що приховані таблиці (таблиці, для яких у діалоговому вікні Властивості встановлено прапорець Прихований) не відображатимуться, якщо в діалоговому вікні Параметри переходів не встановлено прапорець «Приховані об’єкти».

Для отримання додаткових відомостей про параметр «Приховані об’єкти» див. статтю Посібник з області переходів.

  1. Клацніть лінію того зв’язку, який потрібно змінити. Вибрана лінія зв’язку виглядатиме товстішою.
  2. Двічі клацніть лінію зв’язку

— або —

На вкладці Конструктор у групі Знаряддя клацніть елемент Редагування зв'язків.

Відображається діалогове вікно Редагування зв’язків.

  1. Установіть прапорець Забезпечення цілісності даних.
  2. Внесіть додаткові зміни у зв’язок і натисніть кнопку ОК.

Після забезпечення цілісності даних застосовуються такі правила:

  • У полі зовнішнього ключа зв’язаної таблиці не можна вводити значення, відсутні в полі первинного ключа первинної таблиці — така дія призвела б до створення відірваних записів.
  • Із жодної з первинних таблиць не можна видаляти записи, якщо цим записам відповідають записи в пов’язаній таблиці. Наприклад, не можна видалити запис про працівника з таблиці «Працівники», якщо в таблиці «Замовлення» працівнику призначено замовлення. Проте можна видалити первинний запис і всі пов’язані з ним записи однією дією, встановивши прапорець Каскадне видалення пов’язаних полів.
  • Не можна змінити значення первинного ключа в первинній таблиці, якщо це призведе до створення відірваних записів. Наприклад, не можна змінити номер замовлення в таблиці «Замовлення», якщо замовленню призначено позицію в таблиці «Відомості про замовлення». Проте можна оновити первинний запис і всі пов’язані з ним записи однією дією, встановивши прапорець Каскадне оновлення пов’язаних полів.

 Примітки 

У разі виникнення труднощів із забезпеченням цілісності даних зауважте, що для забезпечення цілісності даних мають виконуватися такі умови:

  • Спільне поле в первинній таблиці має бути первинним ключем або мати унікальний індекс.
  • Спільні поля мають містити дані одного типу. Єдиний виняток полягає в тому, що поле «Автонумерація» може пов’язуватися з полем «Число», якщо його властивість Розмір поля (FieldSize) має значення Довге ціле (Long Integer).
  • Обидві таблиці мають міститися в одній базі даних Access. Цілісність даних не можна забезпечити для зв’язаних таблиць із різних баз даних. Проте, якщо вихідні таблиці мають формат Access, можна відкрити базу даних, в якій їх було збережено, після чого увімкнути цілісність даних у цій базі даних.

Настроювання каскадних параметрів

Іноді трапляються ситуації, коли є всі підстави для змінення значення на стороні зв’язку «один». У таких випадках потрібно, щоб програма Access автоматично оновлювала всі задіяні рядки в рамках однієї операції. Таким чином, буде виконано повне оновлення, а база даних не залишиться в неузгодженому стані, коли деякі рядки оновлено, а деякі ні. Access допоможе уникнути таких проблем за рахунок підтримки параметра «Каскадне оновлення пов’язаних полів». Якщо застосувати цілісність даних і вибрати параметр «Каскадне оновлення пов’язаних полів», а потім оновити первинний ключ, Access автоматично оновить усі поля, які посилаються на первинний ключ.

Можливо, також потрібно буде видалити рядок і всі пов’язані з ним записи — наприклад, запис про службу доставки та всі пов’язані з нею замовлення. Для цього в Access є параметр «Каскадне видалення пов’язаних полів». Якщо застосувати цілісність даних і вибрати параметр «Каскадне видалення пов’язаних полів», то в ході видалення запису, який містить первинний ключ, Access автоматично видалить усі записи, що посилаються на первинний ключ.

Увімкнення або вимкнення каскадного оновлення та/або каскадного видалення

  1. Натисніть кнопку Microsoft Office Рисунок на кнопці і виберіть пункт Відкрити.
  1. У діалоговому вікні Відкрити виберіть і відкрийте базу даних.
  2. На вкладці Знаряддя бази даних у групі Відобразити або приховати клацніть елемент Зв'язки.

Зображення стрічки Access

Відображається вікно «Зв’язки».

Якщо зв’язки ще не визначено, а вікно «Зв’язки» відкривається вперше, відображається діалогове вікно Відображення таблиці. У разі появи цього діалогового вікна натисніть кнопку Закрити.

  1. На вкладці Конструктор у групі Зв'язки клацніть елемент Усі зв'язки.

Відображаються всі таблиці, які мають зв’язки, з позначенням їх лініями. Зауважте, що приховані таблиці (таблиці, для яких у діалоговому вікні Властивості встановлено прапорець Прихований) не відображатимуться, якщо в діалоговому вікні Параметри переходів не встановлено прапорець «Приховані об’єкти».

Для отримання додаткових відомостей про параметр «Приховані об’єкти» див. статтю Посібник з області переходів.

  1. Клацніть лінію того зв’язку, який потрібно змінити. Вибрана лінія зв’язку виглядатиме товстішою.
  2. Двічі клацніть лінію зв’язку

— або —

На вкладці Конструктор у групі Знаряддя клацніть елемент Редагування зв'язків.

Відображається діалогове вікно Редагування зв’язків.

  1. Установіть прапорець Забезпечення цілісності даних.
  2. Установіть один або обидва прапорці Каскадне оновлення пов’язаних полів і Каскадне видалення пов’язаних полів.
  3. Внесіть додаткові зміни у зв’язок і натисніть кнопку ОК.

 Примітка   Якщо первинний ключ є полем типу «Автонумерація», встановлення прапорця Каскадне оновлення пов’язаних полів не матиме наслідків, оскільки значення в полі «Автонумерація» змінювати не можна.

На початок сторінки На початок сторінки

 
 
Застосовується до:
Access 2007