Створення форми з підформою (форма зі зв’язком "один-до-багатьох")

Створення форми з підформою (форма зі зв’язком "один-до-багатьох")

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

Примітка :  Ця стаття не стосується веб-програм Access – виду бази даних, яку можна створити за допомогою Access і опублікувати в Інтернеті.

У цій статті

Відомості про підформи

Створення або додавання підформи

Створення форми з підформами за допомогою майстра форм

Додавання однієї або кількох підформ до наявної форми за допомогою майстра підформ

Створення підформи перетягуванням однієї форми в іншу

Відкриття підформи в новому вікні в режимі конструктора

Змінення стандартного вигляду підформи

Додавання пов’язаних даних до форми без створення підформи

Відомості про підформи

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

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

Форма з підформою

1. У головній формі відображаються дані зі сторони зв’язку "один".

2. У підформі відображаються дані зі сторони зв’язку "багато".

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

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

Термін

Визначення

Елемент керування «Підформа»

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

Властивість «Вихідний об’єкт»

Властивість елемента керування «Підформа», що визначає об’єкт, який відображається в елементі керування.

Дані в табличному поданні

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

Властивість «Зв’язати дочірні поля»

Властивість елемента керування «Підформа», що задає поле або поля підформи, які зв’язуватимуть її з головною формою.

Властивість «Зв’язати головні поля»

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

Примітки : 

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

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

  • Дані в табличному поданні або подання зведеної таблиці можна вставити у форму, створивши елемент керування «Підформа», вихідним об’єктом якого є таблиця або запит. Додаткові відомості див. у розділі Додавання пов’язаних даних до форми без створення підформи.

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

Створення або додавання підформи

Наведена нижче таблиця дасть змогу визначити оптимальну процедуру з урахуванням ситуації.

Сценарій

Рекомендована процедура

Необхідно, щоб програма Access створила головну форму й підформу та зв’язала підформу з головною формою.

Створення форми з підформами за допомогою майстра форм

Необхідно використати наявну форму як головну форму, але програма Access має створити нову підформу та додати її до головної форми.

Додавання однієї або кількох підформ до наявної форми за допомогою майстра підформ

Необхідно використати наявну форму як головну форму та додати до цієї форми одну або кілька наявних форм як підформи.

Створення підформи перетягуванням однієї форми в іншу

Створення форми, яка містить підформи, за допомогою майстра форм

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

  1. На вкладці Створення в групі Форми натисніть кнопку Майстер форм. В Access 2007 виберіть Створити > Додаткові форми (у групі Форми) > Майстер форм.

  2. На першій сторінці майстра в розкривному списку Таблиці та запити виберіть таблицю або запит. У цьому прикладі для створення форми «Співробітники», у якій замовлення кожного співробітника відображаються в підформі, буде вибрано Таблиця: Співробітники (сторона ­«один» у зв’язку ­«один-до-багатьох»).

    Примітка : Не має значення, яку таблицю або запит буде вибрано спочатку.

  3. Двічі клацніть у цій таблиці або запиті ті поля, які потрібно включити.

  4. На цій же сторінці майстра в розкривному списку Таблиці та запити виберіть іншу таблицю або запит у списку. У цьому прикладі ми виберемо таблицю "Замовлення" (сторона ­"багато" у зв’язку ­"один-до-багатьох").

  5. Двічі клацніть у цій таблиці або запиті ті поля, які потрібно включити.

  6. Якщо натиснути кнопку Далі й перед запуском майстра правильно настроєно зв’язки, у майстрі з’явиться запитання Яким чином переглядати дані? (мається на увазі, за якою таблицею або запитом). Виберіть таблицю на стороні "один" зв’язку "один-до-багатьох". У цьому прикладі, щоб створити форму "Співробітники", ми вибрали за формою ­"Співробітники". У майстрі з’явиться невелика схема форми. Сторінка має виглядати, як на цьому знімку екрана:

    Сторінка підформи в майстрі форм

    Поле в нижній частині схеми форми відповідає підформі.

    Примітка : Якщо в майстрі не відображається запитання Яким чином переглядати дані?, це свідчить про те, що програма Access не виявила зв’язок "один-до-багатьох" між вибраними таблицями або запитами. Майстер продовжить процедуру, але Access не додасть підформу до форми. Ви можете натиснути кнопку Скасувати та перевірити зв’язки таблиць, перш ніж продовжити.

  7. У нижній частині сторінки майстра виберіть Форма з підформою (підформами) та натисніть кнопку Далі.

  8. На сторінці Виберіть макет для підпорядкованої форми виберіть потрібний варіант макета та натисніть кнопку Далі. Стилі обох макетів передбачають упорядкування даних підформи в рядки та стовпці, але табличний макет надає більше можливостей для настроювання. До табличної підформи можна додати колір, зображення та інші елементи форматування, у той час як дані в табличному поданні мають більш компактний вигляд (такий, як вікно табличного подання даних таблиці).

  9. На наступній сторінці майстра виберіть стиль форматування форми й натисніть кнопку Далі. Якщо вибрати Таблиця на попередній сторінці, вибраний стиль форматування застосується також і до підформи.

  10. На останній сторінці майстра введіть необхідні назви форм. Програма Access присвоює імена формам на основі цих введених назв і підписує підформу відповідно до назви, введеної для підформи.

  11. Укажіть, у якому вигляді слід відкрити форму: у поданні форми, яке дає змогу переглядати або вводити відомості, чи в режимі конструктора, у якому можна змінити структуру. Натисніть кнопку Готово.

    Access створить дві форми – одну для головної форми, яка містить елемент керування "Підформа", і одну власне для підформи.

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

Додавання однієї або кількох підформ до наявної форми за допомогою майстра підформ

Скористайтеся цією процедурою, щоб додати одну або кілька підформ до наявної форми. Для кожної підформи у програмі Access можна на вибір створити нову форму або використати вже наявну форму.

  1. Клацніть правою кнопкою миші наявну форму в області переходів, а потім виберіть Конструктор.

  2. На вкладці Конструктор у групі Елементи керування натисніть стрілку розкривного списку для відображення колекції Елементи керування та переконайтеся, що вибрано параметр Застосувати майстри елементів керування.

  3. На вкладці Конструктор у групі Елементи керування натисніть кнопку Підформа/підзвіт.

  4. Клацніть форму, у якій потрібно розмістити підформу.

  5. Дотримуйтеся вказівок у майстрі.

    Коли ви натиснете кнопку Готово, Access додасть до форми елемент керування "Підформа". Якщо ви вирішили створити форму для підформи, а не використовувати наявну форму, Access створить об’єкт форми та додасть його до області переходів.

Створення підформи перетягуванням однієї форми в іншу

Цю процедуру слід використовувати, якщо необхідно використати наявну форму як головну форму та додати до цієї форми одну або кілька наявних форм як підформу.

  1. В області переходів клацніть правою кнопкою миші форму, яку потрібно використовувати як головну форму, і виберіть пункт Подання макета.

  2. Перетягніть форму, яку слід використовувати як підформу, з області переходів до головної форми.

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

  3. Повторіть цей крок, щоб додати всі додаткові підформи до головної форми.

  4. Щоб переконатися в успішності зв’язування, на вкладці Основне у групі Подання натисніть кнопку Вигляд і виберіть пункт Подання форми, а потім скористайтеся маркером виділення запису головної форми, щоб вибрати кілька записів. Якщо самі фільтри підформи задані правильно для кожного співробітника, процедуру завершено.

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

  1. Клацніть правою кнопкою миші форму в області переходів, а потім виберіть Конструктор.

  2. Клацніть елемент керування «Підформа» один раз, щоб його виділити.

  3. Якщо область завдань вікна властивостей не відображається, натисніть клавішу F4.

  4. У вікні властивостей перейдіть на вкладку Дані.

  5. Натисніть кнопку Зібрати Кнопка "Конструктор" поруч із полем властивості Зв’язати дочірні поля.

    З’явиться діалогове вікно Засіб з’єднання полів підформи.

  6. У розкривних списках Основні поля та Дочірні поля виділіть поля, з якими потрібно зв’язати форму, а потім натисніть кнопку OK. Якщо ви не знаєте, які поля слід використовувати, натисніть кнопку Запропонувати, щоб програма Access спробувала визначити зв’язані поля.

    Порада : Якщо поля, які потрібно використати для зв’язування форми, не відображаються, можливо, потрібно відредагувати джерело записів головної або дочірньої форми, щоб забезпечити наявність у них поля зв’язування. Наприклад, якщо форма створена на основі запиту, слід переконатися, що поле зв’язування представлене в результатах запиту.

  7. Збережіть головну форму, перейдіть до подання форми, а потім переконайтеся, що форма працює належним чином.

Відкриття підформи в новому вікні в режимі конструктора

Якщо потрібно внести зміни до підформи під час роботи в головній формі в режимі конструктора, відкрийте підформу в окремому вікні.

  1. Клацніть підформу, щоб вибрати її.

  2. На вкладці Конструктор у групі Знаряддя виберіть Підпорядкована форма в новому вікні.

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

Змінення вигляду підформи за промовчанням

У разі додавання підформи до форми в елементі керування «Підформа/підзвіт» відображається підформа, що відповідає заданій для підформи властивості Подання за промовчанням. Для цієї властивості можна задати наведені нижче значення.

  • Одна форма

  • Неперервна форма

  • Дані в табличному поданні

  • Розділена форма

Якщо спочатку створити підформу, для цієї властивості можна встановити значення Безперервні форми або Одна форма. Проте якщо задати для властивості підформи Подання за промовчанням значення Таблиця даних, підформа відображатиметься в головній формі як дані в табличному поданні.

Щоб задати значення властивості підформи Подання за промовчанням, зробіть ось що.

  1. Закрийте всі відкриті об’єкти.

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

  3. Якщо аркуш властивостей ще не відображається, натисніть клавішу F4.

  4. Переконайтеся, що в розкривному списку у верхній частині вікна властивостей вибрано елемент Форма.

  5. На вкладці Форма вікна властивостей укажіть для властивості Подання за промовчанням те подання, яке необхідно використовувати.

    Примітка :  Якщо подання, яке необхідно використовувати, відсутнє у списку, переконайтеся, що для властивості подання «Дозволити… подання» задано значення Так. Наприклад, якщо поданням за промовчанням для форми має бути Дані в табличному поданні, переконайтеся, що для властивості Дозволити подання таблиці задано значення Так.

  6. Збережіть і закрийте підформу, а потім відкрийте головну форму для перевірки результатів.

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

Додавання пов’язаних даних до форми без створення підформи

Щоб відображати пов’язані дані, не завжди потрібно створювати окремий об’єкт форми. Наприклад, якщо у формі, відкритій у поданні макета або режимі конструктора, перетягнути таблицю або запит з області переходів до форми, програма Access створить елемент керування "Підформа/підзвіт", у якому відображатимуться дані з цього об’єкта. Відображення даних залежить від властивості Подання за промовчанням цього об’єкта. Зазвичай для нього задається значення "Таблиця даних", але для властивості Подання за промовчанням таблиці або запиту можна задати значення Одна форма, Розділена форма або Безперервні форми, що забезпечує додаткову гнучкість відображення пов’язаних даних у формі.

Примітка :  Змінюючи властивість Подання за промовчанням для таблиці або запиту, можна задати спосіб їх відображення під час відкриття з області переходів або подання в елементі керування ­«Підформа/підзвіт». Оскільки змінення настройок подання для таблиці іноді може призводити до плутанини під час відкриття таблиці з області переходів, радимо для цієї процедури замість таблиці використовувати запит.

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

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

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

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

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

×