Відео. Початок роботи зі зв'язком між таблицями
Applies To
Access для Microsoft 365 Access 2021 Access 2019 Access 2016Спробуйте!
Потужність реляційної бази даних веде до об'єднування даних між таблицями. Для цього спочатку потрібно встановити зв'язки між таблицями. Потім перемістіть Access до роботи, щоб об'єднати дані в запитах, формах і звітах.
Щоб переглянути всі наявні зв'язки, визначені для бази даних, відкрийте шаблон Access, перейдіть на вкладку Знаряддя бази даних і виберіть Зв'язки.
Примітка.: Якщо ви відкрили пусту базу даних або не визначили зв'язки між таблицями, програма Access запропонує додати таблицю чи запит. Щоб додати зв'язок, потрібно мати принаймні дві таблиці. В ідеалі спочатку потрібно створити всі таблиці. Докладні відомості див. в статтях Створення зв'язків за допомогою майстра підстановок і Створення зв'язків за допомогою області зв'язків.
Загальні відомості про подання "Зв'язки"
Лінії в поданні Зв'язки вказують на з'єднання між таблицями. На зображенні нижче таблиця ліворуч – це батьківська таблиця. Праворуч таблиця – це дочірня таблиця. Лінія між ними з'єднує поля (у цьому випадку – "Ідентифікатор замовлення" та "Ідентифікатор товару"), що використовуються для зіставлення даних.
Лінії та символи показують, як таблиці пов'язані між собою:
-
Товста сполучна лінія означає забезпечення цілісності даних. Це добре. Дані синхронізуються.
-
На нашому ілюстрації число 1 указує на те, що в цій таблиці може бути тільки один відповідний запис. У наведеній тут таблиці "Замовлення" лише один запис відповідає кожному замовленні.
-
Символ ∞ означає, що багато записів можуть містити однаковий ідентифікатор. У таблиці "Відомості про замовлення", наведеній тут, замовлення (зазначене за його ідентифікатором замовлення) може відображатися кілька разів, оскільки те саме замовлення може містити кілька товарів.
Типи зв'язків між таблицями
Існує три типи зв'язків між таблицями:
-
Один-до-одного. Коли кожен елемент у кожній таблиці відображається лише один раз. Наприклад, у кожного працівника може використовуватися лише один автомобіль компанії. Докладні відомості див. в статтях Створення зв'язків "один-до-одного".
-
Один-до-багатьох. Коли один елемент в одній таблиці може мати зв'язок із кількома елементами в іншій таблиці. Наприклад, кожне замовлення на придбання може включати кілька продуктів.
-
Багато-до-багатьох. Якщо один або кілька елементів в одній таблиці можуть мати зв'язок з одним або ким елементом в іншій таблиці. Наприклад, кожне замовлення може мати кілька товарів, і кожен товар може відображатися в багатьох замовленнях. Докладні відомості див. в статтях Створення зв'язків "багато-до-багатьох".
Зв'язки "один-до-багатьох"
Один із найпоширеніших зв'язків між таблицями у добре спроектованих базах даних – це зв'язок "один-до-багатьох".
Зв'язки між таблицями зазвичай посід записано на первинний ключ в одній із таблиць. Припустімо, що первинний ключ – це унікальний ідентифікатор (часто числовий) для кожного запису. Щоб показати, що відомості у двох різних таблицях пов'язано, зазвичай зв'язок можна створити за допомогою первинного ключа з однієї з таблиць.
Наприклад, у наведеному тут зв'язку кожний користувач у таблиці "Контакти" має ідентифікатор, що є первинним ключем (його позначено символом ключа поруч). Цей ідентифікатор також відображається в полі Власник таблиці Активи. Щоб надіслати особі електронною поштою користувача, пов'язану з активом, отримайте значення з поля Адреса електронної пошти. Для цього знайдіть значення в полі "Власник" таблиці "Актив" і знайдіть цей ідентифікатор у таблиці "Контакти". Цифра 1 на одному кінці сполучної лінії та символ ∞ на іншому кінці свідчать про те, що це зв'язок "один-до-багатьох", тому один контакт може бути пов'язаний із багатьма активами.
Редагування зв’язку
Якщо ви змінюєте наявну базу даних або створюєте базу даних на основі шаблону, наявні зв'язки можна змінювати відповідно до своїх потреб.
Примітка.: Якщо потрібні таблиці використовуються, спочатку закрийте їх разом із відкритими об'єктами, які їх використовують.
-
Виберіть Знаряддя бази даних > Зв'язки.
-
Виберіть лінію, що з'єднує дві пов'язані таблиці.
Порада.: Якщо потрібний зв'язок не відображається, на вкладці Конструктор у групі Зв'язки натисніть кнопку Усі зв'язки.
-
На вкладці Конструктор натисніть кнопку Редагувати зв'язки.
Таблиця/Запит – це батьківська таблиця ліворуч (у цьому прикладі – "Клієнти").
Пов'язана таблиця/запит – це дочірня таблиця (у цьому прикладі –замовлення).
Навіть якщо таблиці не відображаються в такому порядку в поданні "Зв'язки", їх розташування в діалоговому вікні вказує напрямок лінії, що їх з'єднує, і зв'язок. Це важливо, наприклад, зв'язок "один-до-багатьох", оскільки він вказує на те, що таблиця ліворуч є зв'язком (батьківською таблицею), а праворуч – "багато" (дочірня таблиця).
-
Щоб змінити поля, які з'єднує таблиці, виберіть інше поле під кожною з наведених таблиць. У цьому прикладі поле "Ідентифікатор" у таблиці "Клієнти" підключається до поля "Ідентифікатор клієнта" в таблиці "Замовлення".
-
Змініть спосіб синхронізації даних у програмі Access між таблицями.
Забезпечення цілісності даних
Виберіть цей параметр, щоб уникнути недійсних даних і підтримувати синхронізацію посилань між зв'язком між таблицями.
Наприклад, між таблицями "Працівники" та "Переваги для працівників" є зв'язок "один-до-одного". Якщо працівник залишає компанію, а ви видаляєте його з таблиці "Працівники", пов'язаний запис про працівника з таблиці "Переваги для працівників" також видаляється.
Іноді незмінне забезпечення цілісності даних. Припустімо, наприклад, що між таблицями "Переставки" та "Замовлення" є зв'язок "один-до-багатьох". Ви видаляєте передавця, і цей передавець зіставляє замовлення в таблиці "Замовлення". Відсутність таких замовлень стане відсутність, тобто вони все ще містять ідентифікатор переставки, але цей ідентифікатор уже недійсний, тому що запис, на який він посилається, більше не існує.
Каскадне оновлення пов'язаних полів
Виберіть цей параметр, щоб переконатися, що дані в пов'язаних полях оновлено в усіх пов'язаних таблицях.
Припустімо, наприклад, що потрібно просто змінити ідентифікатор доставки. Цей параметр забезпечує оновлення ідентифікатора перенаправлення не лише в таблиці "Переставка", а також у будь-яких інших пов'язаних із ним таблицях, зокрема в таблиці "Замовлення".
Каскадне видалення пов'язаних записів
Рішення вибрати це залежить від того, чи потрібно зберігати записи в деяких таблицях, навіть якщо їх може бути видалено з інших таблиць.
Припустімо, наприклад, що видалено передавця. Якщо вибрано цей параметр, програма Access видаляє всі записи в усіх таблицях, які посилаються на ідентифікатор переставки, включно з усіма замовленнями (у таблиці "Замовлення"), доставленими такою послуги. Виберіть цей параметр, лише якщо ви впевнені, що журнал замовлень буде видалено.
-
Щоб змінити зв'язок між таблицями з внутрішнього об'єднання на естине об'єднання, натисніть кнопку Тип об'єднання. Докладні відомості див. в розділі Створення запитів із іншими об'єднаннями.
Видалення зв’язку між таблицями
Примітка.: Якщо потрібні таблиці використовуються, спочатку закрийте їх разом із відкритими об'єктами, які їх використовують.
Щоб видалити зв'язок між таблицями:
-
Виберіть Знаряддя бази даних > Зв'язки.
-
Виберіть лінію, що з'єднує дві пов'язані таблиці.
Порада.: Якщо потрібний зв'язок не відображається, на вкладці Конструктор у групі Зв'язки натисніть кнопку Усі зв'язки.
-
Натисніть клавішу Delete. Якщо буде запропоновано підтвердити видалення зв'язку, натисніть кнопку Так.
Примітка.: У разі видалення зв'язку також усувається підтримка цілісності даних для цього зв'язку (якщо вона є). Таким чином, Access більше не блокуватиме зміни, які призведуть до відрих записів на стороні "багато" зв'язку "один-до-багатьох".