Практичне заняття
Створення багатотабличних форм
Мета заняття: Отримати навики з розробки та офрмлення багатотабличних форм
До багатотабличних форм відносять форми, побудовані на основі запиту, об'єднуючого декілька таблиць, а також форми з вбудованими в них іншими формами.
Підлеглою формою називається форма, яка вбудовується в іншу форму. При цьому форма, яка включає підлеглу форму, називається головною формою.
Зазвичай такі форми застосовуються для відображення даних із зв'язаних таблиць (наприклад, таких як "Категорії товарів" і "Товари", "Організації" і "Контактні особи" в цих організаціях і т. д). Проте це буває не завжди. Іноді головна форма містить вільні елементи управління і різні кнопки, які впливають на представлення даних в підлеглій формі. Типовим прикладом такої форми є форма для відбору записів в таблиці. Головна форма містить поля, в яких задаються критерії відбору та керуючі кнопки (рис.1).
Застосування підлеглих форм забезпечує компактніше уявлення на екрані даних з декількох таблиць, чим використання різних форм для кожної таблиці.
Рис.1 Приклад форми, що містить підлеглу форму
Створювати такі форми можна різними способами. Розглянемо спочатку способи створення головної і підлеглої форм для двох зв'язаних таблиць.
1. Створення підлеглих форм
1.1. Створення головної і підлеглої форм за допомогою Майстра автоформ
Найпростіші форми для зв'язаних таблиць можна побудувати за допомогою Майстра автоформ. Він відразу знайде всі таблиці, які пов'язані з головною відношенням "один-до-багатьох", і створить для кожної такої таблиці підлеглу форму.
Для цього відкрийте вікно Схема даних (Relationships) (рис.2) і виясніть, як зв'язані необхідні таблиці. Таблиця "Клієнти" (Customers) пов'язана з таблицею "Замовлення" (Orders) відношенням "один-до-багатьох". У свою чергу таблиця "Замовлення" (Orders) пов'язана з таблицею "Замовлено" (Order Details) теж відношенням "один-до-багатьох".
Рис.2. Діалогове вікно Схема даних
Тепер виділите на сторінці Таблиці (Table) вікна бази даних таблицю "Клієнти" і натисніть стрілку вниз на кнопці Новий об'єкт (New Object) панелі інструментів. Із списку, що відкрився, виберіть об'єкт Автоформа (AutoForm).
В результаті ви повинні побачити на екрані форму, яка представлена на рис.3.
У цій формі головна форма відображає один запис про клієнта, а в підлеглій формі відображаються тільки ті записи з таблиці "Замовлення", які пов'язані з поточним записом в головній формі, в даному випадку тільки замовлення поточного клієнта.
Рис.3 Складена форма, створена Майстром автоформ
Вже з цієї форми видно, що Access забезпечує вкладеність підлеглих форм, причому кількість рівнів вкладеності велика — до 10. З іншого боку, якщо таблиця зв'язана відношенням "один-до-багатьох" з декількома таблицями, то в одну головну форму можна вбудувати декілька підлеглих форм, наскільки це дозволить розмір екрану.
Таке ієрархічне представлення зв'язаних даних зручне не тільки для відображення, але і для введення даних. Наприклад, потрібно оформити замовлення клієнтові, якого ще немає в базі даних. Значить, потрібно додати запис про нового клієнта в таблицю.
Для цього перейдіть в режим введення запису в головній формі, клацнувши мишею по кнопці Новий запис (New Record) форми або панелі інструментів. Введіть дані про клієнта, а потім перемістіть фокус в підлеглу форму для оформлення замовлення. Як тільки ви перемістили фокус в підлеглу форму, запис про клієнта з головної форми зберігається. Тепер підлеглий запис про замовлення буде коректно доданий в таблицю "Замовлення", гарантуючи збереження посилальної цілісності.
Аналогічно буде збережений запис про замовлення, перш ніж почнуть вводитися дані про замовлені продукти в іншій підлеглій формі. Записи в підлеглій формі зберігаються при переході до кожного рядка.
1.2. Використання Майстра форм для створення головної і підлеглої форм
Складну форму з підлеглими формами можна створити також за допомогою Майстра форм. Це дещо складніше, ніж використання Майстра автоформ, та зате дає можливість вибрати у форми не всі поля, а тільки необхідні.
Зараз спробуємо створити таку форму для таблиць "Співробітники" (Employees) і "Замовлення". Знову звернемося до схеми даних (рис.1) і переконаємося, що таблиця "Співробітники" пов'язана з таблицею "Замовлення" відношенням "один-до-багатьох". Отже:
1. Натисніть кнопку Новий об'єкт на панелі інструментів і виберіть команду Форма (Form) або натисніть кнопку Створити (New) на сторінці Форми (Forms) вікна База даних (Database).
2. У діалоговому вікні Нова форма (New Form) запустіть Майстер форм (Form Wizard), виберіть в полі із списком таблицю для головної форми "Співробітники" і натисніть кнопку ОК.
3. У першому вікні діалогу Майстра форм (рис.4) в списку Доступні поля (Available Fields) виберіть ті поля, які треба включити в головну форму. Потім в цьому ж вікні в полі із списком Таблиці/запити (Tables/Queries) виберіть запит "Запит Замовлення", який містить дані з двох таблиць: "Замовлення" і "Клієнти". У списку Доступні поля (Available Fields) з цього запиту виберіть поля, які потрібно включити в підлеглу форму, і натисніть кнопку Далі (Next).
Рис.4. Перше діалогове вікно Майстра форм
4. У наступному вікні пропонується вибрати, яка з двох таблиць буде головною (за замовчуванням встановлюється перша таблиця). Перемикач, що визначає вид представлення ієрархії форм, за замовчуванням встановлений в значення Підлеглі форми (Form with Subform(s)). Натискаємо кнопку Далі (Next).
Рис. 5. Друге діалогове вікно Майстра форм
5. У решті діалогових вікон потрібно вибрати вид підлеглої форми (стрічковий або табличний), її стиль і задати імена для головної і підлеглої форм. Після натиснення кнопки Готово (Finish) створюється форма, що містить одну підлеглу форму, яка виглядає приблизно так, як на рис.6 .
Рис.6. Складена форма, створена Майстром форм
Тепер можна відкрити цю форму в режимі Конструктора і налаштувати її необхідним чином.
1.3. Додавання