Ноу Інти, лекція, додавання підпорядкованої форми
Форма може відображати інформацію (поля) з декількох таблиць або запитів. Але для цього необхідно, щоб між цими об'єктами існували відносини.
В Access відношення являє собою зв'язок між полями з однаковими іменами двох таблиць, яка дозволяє встановити відповідність між записами цих таблиць. Так, наприклад, можна зв'язати ставленням таблиці Типи і Товари. скориставшись встановленої зв'язком між полями КодТіпа.
Кожен тип включає кілька товарів, але кожен товар може відноситися тільки до одного типу. Це приклад найбільш поширеного типу відносин, званого один-ко-многим (тобто, одного запису в таблиці Типи відповідає кілька записів у таблиці Товари).
При створенні форм і запитів Access розпізнає відносини між базисними об'єктами, але не завжди правильно. Тому краще встановити відносини між об'єктами вручну, тим більше що це не викликає особливих проблем.
- Відкрийте базу даних GardenCo, розташовану в робочій папці.
- На панелі інструментів Access клацніть на кнопці Схема даних (Relationships), щоб відкрити діалогове вікно Схема даних (Relationships).
- Якщо діалогове вікно Додавання таблиці (Show Table) не відображається, клацніть на кнопці Відобразити таблицю (Show Table) на панелі інструментів. У списку таблиць клацніть двічі на Типи і Товари. Закрийте діалогове вікно Додавання таблиці (Show Table). щоб перейти в вікно Схема даних (Relationships). яке виглядає наступним чином.
Інші типи відносин
Крім відносини один-ко-многим, існують відносини один-до-одного і багато-до-багатьох, але вони зустрічаються рідше.
Відносно один-до-одного кожного запису в одній таблиці відповідає тільки один запис в іншій таблиці. Цей тип відносин застосовується в тому випадку, якщо таблиця містить багато полів. Для зручності її можна розбити на дві пов'язані таблиці, помістивши рідко використовуються поля в окрему таблицю.
Ставлення багато-ко-многим не реалізовано в явному вигляді в Access і тому імітується через третю таблицю і два відносини один-ко-многим. Наприклад, в базі даних GardenCo є таблиці Товари. Замовлення і Деталі замовлення. Таблиця Товари містить по одному запису для кожного товару. Запис таблиці Замовлення описує один замовлення, не включаючи при цьому переліку замовлених товарів. Ці дані зберігаються в таблиці Деталі замовлення. Тобто, одного запису в таблиці Замовлення відповідає кілька записів у таблиці Деталі замовлення. Очевидно, що між таблицями Замовлення і Деталі замовлення існує відношення один-ко-многим. Але таке ж відношення пов'язує таблиці Товари і Деталі замовлення. Таблиця Деталі замовлення є сполучною щодо многие-ко-многим між таблицями Товари та Замовлення. Простіше кажучи, один і той же товар може міститися в декількох замовленнях, а кожне замовлення може включати кілька товарів.
Порада. Access використовує систему правил (звану забезпеченням цілісності даних), яка перешкоджає випадковому видаленню або зміні пов'язаних даних. Якщо прапорець Каскадне оновлення пов'язаних даних (Cascade Update Related Fields) виділено, зміна ключового поля в первинній таблиці призведе до автоматичного оновлення співпадаючих ключів в пов'язаних записах. Якщо виділений прапорець Каскадне видалення пов'язаних даних (Cascade Delete Related Fields). видалення запису в первинній таблиці викличе видалення відповідних записів в пов'язаної таблиці.
На схемі даних з'явиться лінія, що відображає ставлення один-ко-многим між полями КодТіпа в обох таблицях, як показано нижче.
Порада. Щоб видалити або змінити лінію зв'язку, клацніть на ній правою кнопкою миші і виберіть відповідну команду в контекстному меню.
Оскільки поле КодТіпа в підлеглій формі пов'язано з полем КодТіпа в головній формі, майстер виділить варіант Вибір зі списку (Choose from a list) і елемент списку 'Товари' для кожного запису 'Типи', поле cвязи 'КодТіпа' (Show Products for each record in Categories using CategoryID).
Порада. Якщо майстер не знає, які поля пов'язані, буде виділено варіант Самостійне визначення (Define my own) і з'являться порожні поля, де можна вказати поля, які потрібно зв'язати.