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