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

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

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

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

У цій статті

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Термін

Визначення

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

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

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

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

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

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

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

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

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

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

Примітки.: 

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

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

  • Можна вставляти таблиці або подання pivot до форми за допомогою створення елемента керування «Підформа», вихідний об'єкт – це таблиці або запиту. Додаткові відомості можна отримати у розділі Додавання пов'язаних даних до форми без створення підформи.

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

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

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

Сценарій

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

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

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

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

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

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

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

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

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

  1. На вкладці Створення в групі Форми натисніть кнопку Майстер форм

  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

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

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

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

×