Ноу Інти, лекція, додавання підпорядкованої форми

Форма може відображати інформацію (поля) з декількох таблиць або запитів. Але для цього необхідно, щоб між цими об'єктами існували відносини.

В Access відношення являє собою зв'язок між полями з однаковими іменами двох таблиць, яка дозволяє встановити відповідність між записами цих таблиць. Так, наприклад, можна зв'язати ставленням таблиці Типи і Товари. скориставшись встановленої зв'язком між полями КодТіпа.

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

При створенні форм і запитів Access розпізнає відносини між базисними об'єктами, але не завжди правильно. Тому краще встановити відносини між об'єктами вручну, тим більше що це не викликає особливих проблем.

  1. Відкрийте базу даних GardenCo, розташовану в робочій папці.
  2. На панелі інструментів Access клацніть на кнопці Схема даних (Relationships), щоб відкрити діалогове вікно Схема даних (Relationships).
  3. Якщо діалогове вікно Додавання таблиці (Show Table) не відображається, клацніть на кнопці Відобразити таблицю (Show Table) на панелі інструментів. У списку таблиць клацніть двічі на Типи і Товари. Закрийте діалогове вікно Додавання таблиці (Show Table). щоб перейти в вікно Схема даних (Relationships). яке виглядає наступним чином.

Ноу Інти, лекція, додавання підпорядкованої форми

  • Вкажіть на поле КодТіпа в одній таблиці і перетягніть його поверх поля КодТіпа в іншій таблиці. З'явиться діалогове вікно Зміна зв'язків (Edit Relationships). що дозволяє задати параметри зв'язку, як показано нижче.

    Ноу Інти, лекція, додавання підпорядкованої форми

    Інші типи відносин

    Крім відносини один-ко-многим, існують відносини один-до-одного і багато-до-багатьох, але вони зустрічаються рідше.

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

    Ставлення багато-ко-многим не реалізовано в явному вигляді в Access і тому імітується через третю таблицю і два відносини один-ко-многим. Наприклад, в базі даних GardenCo є таблиці Товари. Замовлення і Деталі замовлення. Таблиця Товари містить по одному запису для кожного товару. Запис таблиці Замовлення описує один замовлення, не включаючи при цьому переліку замовлених товарів. Ці дані зберігаються в таблиці Деталі замовлення. Тобто, одного запису в таблиці Замовлення відповідає кілька записів у таблиці Деталі замовлення. Очевидно, що між таблицями Замовлення і Деталі замовлення існує відношення один-ко-многим. Але таке ж відношення пов'язує таблиці Товари і Деталі замовлення. Таблиця Деталі замовлення є сполучною щодо многие-ко-многим між таблицями Товари та Замовлення. Простіше кажучи, один і той же товар може міститися в декількох замовленнях, а кожне замовлення може включати кілька товарів.

  • Виділіть прапорець Забезпечення цілісності даних (Enforce Referential Integrity). виділіть інші два прапорці і клацніть на кнопці Створити (Create).

    Порада. Access використовує систему правил (звану забезпеченням цілісності даних), яка перешкоджає випадковому видаленню або зміні пов'язаних даних. Якщо прапорець Каскадне оновлення пов'язаних даних (Cascade Update Related Fields) виділено, зміна ключового поля в первинній таблиці призведе до автоматичного оновлення співпадаючих ключів в пов'язаних записах. Якщо виділений прапорець Каскадне видалення пов'язаних даних (Cascade Delete Related Fields). видалення запису в первинній таблиці викличе видалення відповідних записів в пов'язаної таблиці.

    На схемі даних з'явиться лінія, що відображає ставлення один-ко-многим між полями КодТіпа в обох таблицях, як показано нижче.

    Ноу Інти, лекція, додавання підпорядкованої форми

    Порада. Щоб видалити або змінити лінію зв'язку, клацніть на ній правою кнопкою миші і виберіть відповідну команду в контекстному меню.

  • Закрийте вікно Схема даних (Relationships) і клацніть на кнопці Так (Yes) у відповідь на пропозицію зберегти макет схеми даних.
  • Відкрийте форму Типи в режимі конструктора.
  • Збільште вікно форми і перетягніть селектор розділу Примітка форми (Form Footer) вниз на 2,5 см, щоб розширити область даних.
  • Якщо панель елементів відсутній на екрані, клацніть на кнопці Панель елементів (Toolbox).
  • Переконайтеся, що кнопка Майстра (Control Wizard) на панелі елементів активна (рамкою).
  • На панелі елементів клацніть на кнопці Підпорядкована форма / звіт (Subform / Subreport) і протягнете покажчик по нижній частині області даних, щоб накреслити прямокутник. У формі з'явиться білий прямокутний об'єкт, і відкриється вікно Майстер підлеглих форм (Subform Wizard).
  • Залиште виділеним варіант Наявні таблиці і запити (Use Existing Tables and Queries) і клацніть на кнопці Далі (Next).
  • У списку Таблиці і запити (Tables / Queries) виділіть Таблиця: Товари (Table: Товари).
  • Додайте поля ОпісаніеТовара. КодТіпа. Замовлено. Ціна і МінімальнийЗаказ в список Виділені поля (Selected Fields). по черзі клацаючи на кожному полі і клацаючи на кнопці>. Потім клацніть на кнопці Далі (Next). щоб перейти до третьої сторінці майстра.

    Ноу Інти, лекція, додавання підпорядкованої форми

    Оскільки поле КодТіпа в підлеглій формі пов'язано з полем КодТіпа в головній формі, майстер виділить варіант Вибір зі списку (Choose from a list) і елемент списку 'Товари' для кожного запису 'Типи', поле cвязи 'КодТіпа' (Show Products for each record in Categories using CategoryID).

    Порада. Якщо майстер не знає, які поля пов'язані, буде виділено варіант Самостійне визначення (Define my own) і з'являться порожні поля, де можна вказати поля, які потрібно зв'язати.

  • Клацніть на кнопці Далі (Next). щоб прийняти задані за замовчуванням установки, а потім клацніть на кнопці Готово (Finish). щоб прийняти запропоноване ім'я підлеглої форми і завершити процес. Access відобразить форму Типи в режимі конструктора з вкладеною в неї підлеглою формою Товари. Розміри підпорядкованої форми визначаються вихідним прямокутником, який ви накреслили.
  • Схожі статті