Під час роботи з реляційними даними (пов'язаними даними, які зберігаються в окремих таблицях) у Access часто потрібно переглядати кілька таблиць або запитів в одній формі. Наприклад, може знадобитися переглянути дані клієнтів з однієї таблиці та відомості про замовлення клієнтів з іншої таблиці одночасно. Підформи – це зручний засіб для цього, і Access надає кілька способів швидко створювати підформи.
У цій статті
Відомості про підформи
Підформа – це форма, вставлена в іншу форму. Первинна форма називається головною формою, а форма, яку вкладено у форму – підформою. Комбінація з форми та підформи іноді називається ієрархічною формою, формою зі зв’язком "головний – другорядний" або формою зі зв’язком "батьківський – дочірній".
Підформи особливо ефективні, коли потрібно відображати дані з таблиць або запитів зі зв’язком "один-до-багатьох". "Один-до-багатьох" – це зв’язок між двома таблицями, у яких значення первинного ключа кожного запису в головній таблиці відповідає значенню у відповідних полях кількох записів у пов’язаній таблиці. Припустімо, ви створили форму з даними кожного співробітника, яка містить підформу з їхніми замовленнями. Дані в таблиці "Співробітники" – це сторона зв’язку "один", а дані в таблиці "Замовлення" – "багато". Кожен співробітник може мати кілька замовлень.
1. У головній формі відображаються дані зі сторони зв’язку "один".
2. У підформі відображаються дані зі сторони зв’язку "багато".
Головна форма та підформа у формі цього виду пов’язані таким чином, що в підформі відображаються лише записи, пов’язані з поточним записом у головній формі. Наприклад, коли в головній формі відображаються відомості про Марину Шевченко, у підформі – лише її замовлення. Якщо форма та підформа не зв’язані, у підформі відображаються всі замовлення, а не лише замовлення Марини.
У таблиці нижче наведено визначення деяких термінів, пов'язаних із підформами. У разі дотримання процедури цієї статті програма Access виконуватиме більшість операцій автоматично, але якщо згодом потрібно буде внести які-небудь зміни, буде не зайвим ознайомитися з цим процесом, так би мовити, з середини.
Термін |
Визначення |
---|---|
Елемент керування «Підформа» |
Елемент керування, який вбудовує форму у форму. Елемент керування "Підформа" можна вважати "поданням" іншого об'єкта в базі даних незалежно від того, чи це інша форма, таблиця або запит. Елемент керування "Підформа" надає властивості, які дають змогу зв'язати дані, що відображаються в елементі керування, з даними в головній формі. |
Властивість «Вихідний об’єкт» |
Властивість елемента керування «Підформа», що визначає об’єкт, який відображається в елементі керування. |
Дані в табличному поданні |
Звичайне відображення даних у рядках і стовпцях (виглядає майже так само, як електронна таблиця). Дані в табличному поданні відображаються в елементі керування «Підформа», якщо їх вихідним об’єктом є таблиця або запит, а також коли вихідним об’єктом є форма, у якій для властивості «Подання за промовчанням» установлено значення «Дані в табличному поданні». У цьому разі підформу іноді називають не підформою, а даними в табличному поданні або підтаблицею. |
Властивість «Зв’язати дочірні поля» |
Властивість елемента керування «Підформа», що задає поле або поля підформи, які зв’язуватимуть її з головною формою. |
Властивість «Зв’язати головні поля» |
Властивість елемента керування «Підформа», що задає поле або поля в головній формі, які зв’язуватимуть її з підформою. |
Примітки.:
-
Щоб отримати найкращі результати, перш ніж виконати процедуру, описану в цій статті, задайте зв’язки таблиці. Це дасть змогу Access автоматично створювати зв’язки між підформами та головними формами. Щоб переглянути, додати або змінити зв'язки між таблицями в базі даних, на вкладці Знаряддя бази даних у групі Зв'язки натисніть кнопку Зв'язки.
-
Якщо елемент керування "Підформа" має форму як вихідний об'єкт, він містить поля, розміщені у формі, і його можна переглядати як одну форму, неперервну форму або таблицю даних. Одна з переваг базування підформи в об'єкті форми полягає в тому, що обчислювані поля можна додати до підформи, наприклад [Кількість] * [Ціна за одиницю].
-
Ви можете вставити таблицю даних або зведене подання у форму, створивши елемент керування підформи, вихідним об'єктом якого є таблиця або запит. Докладні відомості див. в розділі Додавання пов'язаних даних до форми без створення підформи.
Створення або додавання підформи
Наведена нижче таблиця дасть змогу визначити оптимальну процедуру з урахуванням ситуації.
Сценарій |
Рекомендована процедура |
---|---|
Необхідно, щоб програма Access створила головну форму й підформу та зв’язала підформу з головною формою. |
|
Необхідно використати наявну форму як головну форму, але програма Access має створити нову підформу та додати її до головної форми. |
Додавання однієї або кількох підформ до наявної форми за допомогою майстра підформ |
Необхідно використати наявну форму як головну форму та додати до цієї форми одну або кілька наявних форм як підформи. |
Створення форми, яка містить підформи, за допомогою майстра форм
У цій процедурі створюється нове сполучення форми та підформи за допомогою майстра форм. Це також найшвидший спосіб почати роботу, якщо форму, яку потрібно використовувати як головну форму або підформу ще не створено.
-
На вкладці Створення в групі Форми натисніть кнопку Майстер форм.
-
На першій сторінці майстра в розкривному списку Таблиці та запити виберіть таблицю або запит. У цьому прикладі для створення форми «Співробітники», у якій замовлення кожного співробітника відображаються в підформі, буде вибрано Таблиця: Співробітники (сторона «один» у зв’язку «один-до-багатьох»).
Примітка.: Не має значення, яку таблицю або запит буде вибрано спочатку.
-
Двічі клацніть у цій таблиці або запиті ті поля, які потрібно включити.
-
На цій же сторінці майстра в розкривному списку Таблиці та запити виберіть іншу таблицю або запит у списку. У цьому прикладі ми виберемо таблицю "Замовлення" (сторона "багато" у зв’язку "один-до-багатьох").
-
Двічі клацніть у цій таблиці або запиті ті поля, які потрібно включити.
-
Якщо натиснути кнопку Далі й перед запуском майстра правильно настроєно зв’язки, у майстрі з’явиться запитання Яким чином переглядати дані? (мається на увазі, за якою таблицею або запитом). Виберіть таблицю на стороні "один" зв’язку "один-до-багатьох". У цьому прикладі, щоб створити форму "Співробітники", ми вибрали за формою "Співробітники". У майстрі з’явиться невелика схема форми. Сторінка має виглядати, як на цьому знімку екрана:
Поле в нижній частині схеми форми відповідає підформі.
Примітка.: Якщо в майстрі не відображається запитання Яким чином переглядати дані?, це свідчить про те, що програма Access не виявила зв’язок "один-до-багатьох" між вибраними таблицями або запитами. Майстер продовжить процедуру, але Access не додасть підформу до форми. Ви можете натиснути кнопку Скасувати та перевірити зв’язки таблиць, перш ніж продовжити.
-
У нижній частині сторінки майстра виберіть Форма з підформою (підформами) та натисніть кнопку Далі.
-
На сторінці Виберіть макет для підпорядкованої форми виберіть потрібний варіант макета та натисніть кнопку Далі. Стилі обох макетів передбачають упорядкування даних підформи в рядки та стовпці, але табличний макет надає більше можливостей для настроювання. До табличної підформи можна додати колір, зображення та інші елементи форматування, у той час як дані в табличному поданні мають більш компактний вигляд (такий, як вікно табличного подання даних таблиці).
-
На наступній сторінці майстра виберіть стиль форматування форми й натисніть кнопку Далі. Якщо вибрати Таблиця на попередній сторінці, вибраний стиль форматування застосується також і до підформи.
-
На останній сторінці майстра введіть необхідні назви форм. Програма Access присвоює імена формам на основі цих введених назв і підписує підформу відповідно до назви, введеної для підформи.
-
Укажіть, у якому вигляді слід відкрити форму: у поданні форми, яке дає змогу переглядати або вводити відомості, чи в режимі конструктора, у якому можна змінити структуру. Натисніть кнопку Готово.
Access створить дві форми – одну для головної форми, яка містить елемент керування "Підформа", і одну власне для підформи.
Додавання однієї або кількох підформ до наявної форми за допомогою майстра підформ
Скористайтеся цією процедурою, щоб додати одну або кілька підформ до наявної форми. Для кожної підформи у програмі Access можна на вибір створити нову форму або використати вже наявну форму.
-
Клацніть правою кнопкою миші наявну форму в області переходів, а потім виберіть Конструктор.
-
На вкладці Конструктор форм у групі Елементи керування клацніть стрілку вниз, щоб відобразити колекцію Елементи керування та переконайтеся, що вибрано параметр Використовувати майстри елементів керування .
-
На вкладці Конструктор форм у групі Елементи керування натисніть кнопку Підформа або підзвіт .
-
Клацніть форму, у якій потрібно розмістити підформу.
-
Дотримуйтеся вказівок у майстрі.
Коли ви натиснете кнопку Готово, Access додасть до форми елемент керування "Підформа". Якщо ви вирішили створити форму для підформи, а не використовувати наявну форму, Access створить об’єкт форми та додасть його до області переходів.
Створення підформи перетягуванням однієї форми в іншу
Цю процедуру слід використовувати, якщо необхідно використати наявну форму як головну форму та додати до цієї форми одну або кілька наявних форм як підформу.
-
В області переходів клацніть правою кнопкою миші форму, яку потрібно використовувати як головну форму, і виберіть пункт Подання макета.
-
Перетягніть форму, яку слід використовувати як підформу, з області переходів до головної форми.
Access додасть елемент керування "Підформа" до головної форми та прив’яже цей елемент керування до форми, перетягнутої з області переходів. Крім того, Access спробує зв’язати підформу з головною формою на основі зв’язків, визначених у базі даних.
-
Повторіть цей крок, щоб додати всі додаткові підформи до головної форми.
-
Щоб переконатися в успішності зв’язування, на вкладці Основне у групі Подання натисніть кнопку Вигляд і виберіть пункт Подання форми, а потім скористайтеся маркером виділення запису головної форми, щоб вибрати кілька записів. Якщо самі фільтри підформи задані правильно для кожного співробітника, процедуру завершено.
Якщо попередній тест не працює, програмі Access не вдалося визначити, як зв'язати підформу з головною формою, а властивості Зв'язати дочірні поля та Зв'язати основні поля елемента керування "Підформа" пусті. Ці властивості потрібно встановити вручну, виконавши такі дії:
-
Клацніть правою кнопкою миші форму в області переходів, а потім виберіть Конструктор.
-
Клацніть елемент керування «Підформа» один раз, щоб його виділити.
-
Якщо область завдань вікна властивостей не відображається, натисніть клавішу F4.
-
У вікні властивостей перейдіть на вкладку Дані.
-
Натисніть кнопку Побудувати поруч із полем властивості Зв'язати дочірні поля .
З’явиться діалогове вікно Засіб з’єднання полів підформи.
-
У розкривних списках Основні поля та Дочірні поля виділіть поля, з якими потрібно зв’язати форму, а потім натисніть кнопку OK. Якщо ви не знаєте, які поля слід використовувати, натисніть кнопку Запропонувати, щоб програма Access спробувала визначити зв’язані поля.
Порада.: Якщо поля, які потрібно використати для зв’язування форми, не відображаються, можливо, потрібно відредагувати джерело записів головної або дочірньої форми, щоб забезпечити наявність у них поля зв’язування. Наприклад, якщо форма створена на основі запиту, слід переконатися, що поле зв’язування представлене в результатах запиту.
-
Збережіть головну форму, перейдіть до подання форми, а потім переконайтеся, що форма працює належним чином.
Відкриття підформи в новому вікні в режимі конструктора
Якщо потрібно внести зміни до підформи під час роботи в головній формі в режимі конструктора, відкрийте підформу в окремому вікні.
-
Клацніть підформу, щоб вибрати її.
-
На вкладці Конструктор форм у групі Знаряддя натисніть кнопку Підформа в новому вікні.
Змінення вигляду підформи за промовчанням
У разі додавання підформи до форми в елементі керування «Підформа/підзвіт» відображається підформа, що відповідає заданій для підформи властивості Подання за промовчанням. Для цієї властивості можна задати наведені нижче значення.
-
Одна форма
-
Неперервна форма
-
Дані в табличному поданні
-
Розділена форма
Якщо спочатку створити підформу, для цієї властивості можна встановити значення Безперервні форми або Одна форма. Проте якщо задати для властивості підформи Подання за промовчанням значення Таблиця даних, підформа відображатиметься в головній формі як дані в табличному поданні.
Щоб задати значення властивості підформи Подання за промовчанням, зробіть ось що.
-
Закрийте всі відкриті об’єкти.
-
В області переходів клацніть правою кнопкою миші підформу та виберіть Конструктор.
-
Якщо аркуш властивостей ще не відображається, натисніть клавішу F4.
-
Переконайтеся, що в розкривному списку у верхній частині вікна властивостей вибрано елемент Форма.
-
На вкладці Форма вікна властивостей укажіть для властивості Подання за промовчанням те подання, яке необхідно використовувати.
Примітка.: Якщо подання, яке необхідно використовувати, відсутнє у списку, переконайтеся, що для властивості подання «Дозволити… подання» задано значення Так. Наприклад, якщо поданням за промовчанням для форми має бути Дані в табличному поданні, переконайтеся, що для властивості Дозволити подання таблиці задано значення Так.
-
Збережіть і закрийте підформу, а потім відкрийте головну форму для перевірки результатів.