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

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

Одна з цілей розробки – видалення надлишкових (повторюваних даних). Для досягнення цієї мети, які розділяють на багато тематичних таблиць, щоб кожен факт представлений лише один раз. Ви натисніть надати 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 запропонує додати до вікна таблицю або запит.

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

  1. Натисніть кнопку Microsoft Office Зображення кнопки Office і виберіть команду Відкрити.

  2. У діалоговому вікні Відкрити виберіть і відкрийте базу даних.

  3. На вкладці Знаряддя бази даних у групі Відобразити або приховати натисніть кнопку Зв’язки.

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

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

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

    Щоб отримати додаткові відомості про параметр відображати приховані об'єкти наведено у статті посібник із роботи з області переходів.

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

1. первинного ключа

2. цей рядок відповідає зв'язку

3 зовнішній ключ

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

Коли активовано вікна зв'язки», можна вибрати такі команди на стрічці, частину Інтерфейс користувача Microsoft Office Fluent:

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

  • Змінити зв’язки   . Відкриває діалогове вікно Редагування зв’язків. Вибравши лінію зв’язку, можна вибрати команду Змінити зв’язки, щоб змінити зв’язок таблиці. Крім того, можна двічі клацнути лінію зв’язку.

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

  • Звіт про зв’язки   . Створює звіт, у якому відображаються таблиці та зв’язки в базі даних. У звіті відображаються лише ті таблиці та зв’язки, які не було приховано у вікні "Зв’язки".

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

  • Відобразити таблицю   . Відкриває діалогове вікно Відображення таблиці, за допомогою якого можна вибрати таблиці та запити для перегляду у вікні "Зв’язки".

  • Приховати таблицю   . Приховує вибрану таблицю у вікні "Зв’язки".

  • Прямі зв’язки   . Відображає всі зв’язки та пов’язані таблиці для вибраної таблиці у вікні "Зв’язки", якщо вони ще не відображаються.

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

    Докладніше про параметр відображати приховані таблиці наведено у статті посібник із роботи з області переходів.

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

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

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

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

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

  1. Натисніть кнопку Microsoft Office Зображення кнопки Office і виберіть команду Відкрити.

  2. У діалоговому вікні Відкрити виберіть і відкрийте базу даних.

  3. На вкладці Знаряддя бази даних у групі Відобразити або приховати натисніть кнопку Зв’язки.

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

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

  5. Виберіть одну або кілька таблиць чи запитів і натисніть кнопку Додати. Закінчивши додавати таблиці й запити до вікна "Зв’язки", натисніть кнопку Закрити.

  6. Перетягніть поле з однієї таблиці (зазвичай це первинний ключ) до спільного поля (зовнішнього ключа) в іншій таблиці. Щоб перетягнути кілька полів, натисніть клавішу Control, виберіть потрібні поля та перетягніть їх.

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

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

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

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

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

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

Примітки.: 

  • Створення зв’язку "один-до-одного"   . В обох спільних полів (зазвичай, полів первинного та зовнішнього ключів) має бути унікальний індекс, тобто для властивості Індексовано цих полів потрібно встановити значення Так (без повторень). Якщо обидва поля мають унікальний індекс, програма Access створює зв’язок "один-до-одного".

  • Створення зв’язку "один-до-багатьох"   . У поля на стороні зв’язку "один" (зазвичай, первинного ключа) має бути унікальний індекс, тобто для властивості Індексовано цього поля потрібно встановити значення Так (без повторень). У поля на стороні "багато" не має бути унікального індексу. Воно може мати індекс, який може повторюватися, тобто для властивості Індексовано цього поля має бути задано значення Ні або Так (повторення дозволено). Коли індекс одного поля унікальний, а іншого – ні, програма Access створює зв’язок "один-до-багатьох".

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

У Office Access 2007можна додати поля до наявної таблиці, відкритої у вікні табличного подання даних, перетягнувши його з області Список полів . Області Список полів відображає поля, наявні в пов'язаних таблицях а також поля, наявні в інших таблицях. Якщо перетягнути поле з таблиці "інше" (непов'язані) та завершіть роботу майстра підстановок, на новий рівень один до багатьох буде автоматично створено між таблицею в області Список полів і таблиці, до якої перетягується поле. Цей зв'язок, що створено Access, не забезпечення цілісності даних за промовчанням. Щоб забезпечити цілісність даних, потрібно відредагувати зв'язок. У розділі змінення зв'язку між таблицями для отримання додаткових відомостей.

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

  1. Натисніть кнопку Microsoft Office Зображення кнопки Office і виберіть команду Відкрити.

  2. У діалоговому вікні Відкрити виберіть і відкрийте базу даних.

  3. В області переходів клацніть правою кнопкою миші таблицю, до якої потрібно додати поле та створення зв'язку і в контекстному меню пункт Табличного подання даних .

Відкриття області "Список полів"

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

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

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

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

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

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

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

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

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

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

  3. Перетягніть потрібне поле з області Список полів до таблиці, відкритої у вікні табличного подання даних.

  4. Після появи лінії вставлення вставте поле.

    Запуститься майстер підстановок.

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

    У поданні таблиці з’явиться поле.

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

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

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

Щоб видалити зв’язок між таблицями, потрібно видалити лінію зв’язку у вікні "Зв’язки". Обережно розташуйте курсор таким чином, щоб він указував на лінію зв’язку, а потім клацніть її, після чого виділена лінія зв’язку стане товстішою. Виділивши лінію зв’язку, натисніть клавішу Delete. Зверніть увагу, що видалення зв’язку призводить також і до припинення підтримки цілісності зв’язків, якщо цю функцію активовано. Як наслідок, програма Access більше не блокуватиме автоматичне створення відірваних записів на стороні зв’язку "багато".

  1. Натисніть кнопку Microsoft Office Зображення кнопки Office і виберіть команду Відкрити.

  2. У діалоговому вікні Відкрити виберіть і відкрийте базу даних.

  3. На вкладці Знаряддя бази даних у групі Відобразити або приховати натисніть кнопку Зв’язки.

Відобразиться вікно "Зв’язки".

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

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

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

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

  2. Натисніть клавішу Delete.

    –або–

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

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

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

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

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

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

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

  1. Натисніть кнопку Microsoft Office Зображення кнопки Office і виберіть команду Відкрити.

  2. У діалоговому вікні Відкрити виберіть і відкрийте базу даних.

  3. На вкладці Знаряддя бази даних у групі Відобразити або приховати натисніть кнопку Зв’язки.

Відобразиться вікно "Зв’язки".

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

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

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

Щоб отримати додаткові відомості про параметр відображати приховані об'єкти наведено у статті посібник із роботи з області переходів.

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

  2. Двічі клацніть лінію зв’язку

    – або –

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

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

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

  3. Внесіть зміни та натисніть кнопку OK.

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

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

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

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

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

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

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

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

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

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

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

  2. Виберіть потрібний параметр і натисніть кнопку OK.

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

Вибір

Реляційне об’єднання

Ліва таблиця

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

1. Включати лише рядки, де збігаються об’єднані поля з обох таблиць.

Внутрішні об’єднання

Рядки зі збігами

Рядки зі збігами

2. Включити ВСІ записи з таблиці "Клієнти" та лише ті записи з таблиці "Замовлення", де об’єднані поля рівні.

Ліве зовнішнє з’єднання

Усі рядки

Рядки зі збігами

3. Включити ВСІ записи з таблиці "Замовлення" та лише ті записи з таблиці "Клієнти", де об’єднані поля рівні.

Праве зовнішнє з’єднання

Рядки зі збігами

Усі рядки

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

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

  1. Натисніть кнопку Microsoft Office Зображення кнопки Office і виберіть команду Відкрити.

  2. У діалоговому вікні Відкрити виберіть і відкрийте базу даних.

  3. На вкладці Знаряддя бази даних у групі Відобразити або приховати натисніть кнопку Зв’язки.

Відобразиться вікно "Зв’язки".

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

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

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

Щоб отримати додаткові відомості про параметр відображати приховані об'єкти наведено у статті посібник із роботи з області переходів.

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

  2. Двічі клацніть лінію зв’язку

    – або –

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

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

  3. Натисніть кнопку Тип об’єднання

  4. У діалоговому вікні Параметри об’єднання виберіть параметр і натисніть кнопку OK.

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

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

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

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

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

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

  1. Натисніть кнопку Microsoft Office Зображення кнопки Office і виберіть команду Відкрити.

  2. У діалоговому вікні Відкрити виберіть і відкрийте базу даних.

  3. На вкладці Знаряддя бази даних у групі Відобразити або приховати натисніть кнопку Зв’язки.

Відобразиться вікно "Зв’язки".

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

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

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

Щоб отримати додаткові відомості про параметр відображати приховані об'єкти наведено у статті посібник із роботи з області переходів.

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

  2. Двічі клацніть лінію зв’язку

    – або –

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

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

  3. Установіть прапорець Забезпечення цілісності даних.

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

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

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

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

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

    Примітки.: Якщо функція цілісності зв’язків не активується, перевірте, чи виконуються такі умови:

    • Спільне поле в головній таблиці має бути первинним ключем, або в нього має бути унікальний індекc.

    • Спільні поля мають містити дані одного типу. Єдиний виняток полягає в тому, що поле "Лічильник" можна пов’язувати з полем "Число", якщо його властивість Розмір поля має значення Довге ціле число.

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

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

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

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

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

  1. Натисніть кнопку Microsoft Office Зображення кнопки Office і виберіть команду Відкрити.

  2. У діалоговому вікні Відкрити виберіть і відкрийте базу даних.

  3. На вкладці Знаряддя бази даних у групі Відобразити або приховати натисніть кнопку Зв’язки.

Відобразиться вікно "Зв’язки".

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

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

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

Щоб отримати додаткові відомості про параметр відображати приховані об'єкти статті посібник із роботи з області переходів.

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

  2. Двічі клацніть лінію зв’язку

    – або –

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

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

  3. Установіть прапорець Забезпечити цілісність посилань.

  4. Установіть один або обидва прапорці Каскадне оновлення пов’язаних полів і Каскадне видалення пов’язаних полів.

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

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

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

Удосконалення навичок роботи з Office
Ознайомтеся з навчальними матеріалами
Отримуйте нові функції раніше за інших
Приєднайтеся до оцінювачів Office

Ця інформація корисна?

Дякуємо за ваш відгук!

Дякуємо за відгук! Схоже, вам може стати в нагоді допомога одного з наших спеціалістів служби підтримки Office, з яким ми вас можемо з’єднати.

×