Підтаблиці, організація зв'язків між таблицями, глава 3 створення таблиць нової бази даних, читати

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

Щоб створити підтаблицю, як зазвичай, спочатку увійдіть в вікно бази даних і відкрийте необхідну таблицю (нехай це буде таблиця Країни). Вона буде виглядати так, як показано на рис. 3.32.

Перейдемо в режим конструктора і клацнемо в цьому режимі правою кнопкою миші по заголовку таблиці - Країни: таблиця (рис. 3.33). Відкриється контекстне меню, в якому треба вибрати позицію Властивості. В результаті на екрані з'явиться вікно Властивості таблиці, в якому нас цікавить конкретна позиція Ім'я підтаблиці. Після клацання в цій позиції (лівою кнопкою) в рядку з'явиться стрілка прокрутки

після натискання на неї з'явиться меню, що містить ті об'єкти бази даних (таблиці, форми, запити), які ми хотіли б бачити в якості підлеглих в таблиці Країни (рис. 3.34).

Виберемо в цьому меню позицію Таблиця. Фірми і після звичайних перетворень (режим конструктора, збереження змін в таблиці, вікно бази даних, відкриває таблицю) отримаємо первинну таблицю Країни - рис. 3.35.

Слід додати, що крім поля Ім'я підтаблиці необхідно заповнити ще два поля в зазначеному вікні Властивості таблиці, а саме: Підлеглі поля і Основні поля. Їх треба заповнити іменами тих полів, які є сполучними між таблицями. В даному випадку підлеглим полем буде Код фірми, основним полем - Код.

На перший погляд ця таблиця ідентична попередньої, наведеної на рис. 3.32. Однак зверніть увагу на значки (+), які стоять біля кожного коду фірми. Вони вказують на те, що тут в згорнутому вигляді міститься інформація. Якщо клацнути по такому значку, відповідний рядок розкриється, і ви побачите перелік фірм, що відносяться до цієї країни, в даному випадку USA (див. Рис. 3.36).

Інакше кажучи, на рис. 3.36 продемонстрована ієрархічна дворівнева структура Країни і Фірми. Тепер для таблиці другого рівня - Фірми - виконаємо такі ж дії з вікнами Властивості таблиці і Ім'я підтаблиці (див. Рис. 3.34). Як батьківської таблиці приймемо Фірми, а в якості дочірньої - Менеджер. Пов'язаними полями в обох таблицях визначимо Код фірми. Тоді таблиця Фірми, в свою чергу, буде містити згорнуту інформацію про менеджерів, що також показано на рис. 3.34. Якщо ви розкриєте цю інформацію, то побачите вже трирівневу ієрархічну структуру Країни, Фірми та Менеджер (див. Рис. 3.38). Таким способом в принципі можна створити ієрархічне дерево. В межах таблиці можна вкласти до восьми рівнів підтаблиць. Однак кожна таблиця або підтаблиця, як ми бачимо, може мати тільки одну вкладену підтаблицю. Підтаблиця, що відноситься до підлеглій формі, може використовувати як джерело даних таблицю, запит або форму.

Покажемо це побудова з використанням більш простого шляху. Відкриємо таблицю Фірми (рис. 3.38).

Тепер відкриємо меню Вставка і в ньому позицію підтаблиці. На вкладці Таблиці виділимо Країни. В цьому випадку таблиця Фірми буде основною, а таблиця Країни - підлеглої. Тому в нижній частині діалогового вікна Вставка підтаблиці вкажемо за допомогою стрілок прокрутки в якості основного поля Код фірми, а в якості підлеглого - Код (рис. 3.39).

Відкрита таблиця Фірми буде виглядати так, як показано на рис. 3.40.

Як приклад відкрито два фрагмента. При цьому в таблиці Країни створена раніше підтаблиця (рис. 3.35) залишилася незмінною. Якщо необхідно одним клацанням розгорнути всі записи підтаблиці або згорнути всі розкриті записи, слід вибрати позицію підтаблиці в меню Формат (при відкритій таблиці Фірми). Ця ж позиція дозволяє видалити підтаблицю.

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

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