- •5.05150104 «Дизайн друкованої продукції»
- •Пояснювальна записка
- •Зауваження
- •Запуск Access і відкриття баз даних
- •Створення нової бази даних
- •Робоче середовище Access
- •Використання довідкової системи
- •Виклик вікна довідки
- •Основні режими роботи з таблицями
- •Створення таблиць
- •Визначення полів
- •Властивості полів таблиці
- •Використання Майстра підстановок
- •Формати відображення даних
- •Визначення маски введення
- •Вставка, видалення і перейменування полів таблиці
- •Введення і перевірка даних
- •Зміна зовнішнього вигляду таблиці
- •Мал. 2.49. Вікно Вставка підтаблиці
- •Сортування даних в таблиці
- •Пошук і заміна даних
- •Фільтрація даних
Вставка, видалення і перейменування полів таблиці
Розглянемо тепер, яким чином можна перейменовувати, вставляти і видаляти поля в режимі Конструктора таблиць.
Щоб перейменувати поле в режимі Конструктора таблиць, необхідно:
Клацнути лівою кнопкою миші в стовпці Ім'я поля (Field Name) на імені поля, що підлягає перейменуванню.
Ввести нове ім'я поля або відредагувати старе ім'я.
Натиснути клавішу <Enter> або перемістити покажчик поточного запису на будь-який інший запис.
Щоб вставити поле в режимі Конструктора таблиць, необхідно спочатку виділити рядок, перед яким необхідно вставити поле. Для цього потрібно клацнути лівою кнопкою миші у області виділення. Після цього вставити нове поле можна одним з трьох способів:
натиснути кнопку Додати рядки (Insert Rows) на панелі інструментів Конструктор таблиць (Table Design);
вибрати в головному меню команду Вставка (Insert) і з меню, що розкривається, вибрати команду Рядка (Rows);
клацнути правою кнопкою миші на виділеному записі і з контекстного меню вибрати команду Додати рядки (Insert Rows).
Потім в одержаний порожній рядок потрібно ввести ім'я нового поля, тип і опис.
Зауваження
Щоб вставити відразу декілька рядків, необхідно виділити необхідну кількість існуючих рядків, перед якими потрібно вставити нові, а потім виконати команду вставки рядків відповідно до приведеної вище процедури.
Щоб видалити поле в режимі Конструктора таблиць, виділіть рядок (рядки) опису поля (полів), який необхідно видалити. Потім використовуйте будь-який з трьох варіантів видалення виділеного рядка (рядків):
вибрати з головного меню команду Правка (Edit) і з меню, що розкривається, — команду Видалити (Delete) або Видалити рядки (Delete Rows);
натиснути на клавішу <Delete>;
клацнути правою кнопкою миші на виділеному рядку (рядках) і з контекстного меню вибрати команду Видалити рядки (Delete Rows).
Зауваження
При видаленні полів, в яких містяться або можуть міститися дані, Microsoft Access зажадає підтвердження на видалення даного поля.
Перейменування, додавання і видалення полів можливі не тільки в режимі Конструктора, але і в режимі Таблиці. Щоб перейменувати поле в режимі Таблиці, слідує:
Виділити стовпець, який необхідно перейменувати. Для цього потрібно клацнути лівою кнопкою миші на імені поля (стовпця).
Клацнути правою кнопкою миші на виділеному стовпці і з контекстного меню вибрати команду Перейменувати стовпець (Rename Column) або вибрати з головного меню команду Формат (Format) і з меню, що розкривається, — команду Перейменувати стовпець (Rename Column).
У поле заголовка стовпця ввести нове ім'я поля і натиснути клавішу <Enter> або клацнути лівою кнопкою миші в будь-якому іншому місці таблиці.
Зауваження
Для швидкого перейменування поля в режимі Таблиці можна двічі клацнути лівою кнопкою миші в полі заголовка стовпця, ввести нове ім'я поля і натиснути клавішу <Enter>.
Щоб додати поле в таблицю в режимі Таблиці, необхідно:
Виділити стовпець, перед яким потрібно вставити нове поле.
Клацнути правою кнопкою миші на виділеному стовпці і з контекстного меню вибрати команду Додати стовпець (Insert Column) або з головного меню вибрати команду Вставка (Insert) і з меню, що розкривається, — команду Стовпець (Column).
Перед виділеним стовпцем з'явиться новий стовпець, ім'я якого складатиметься із слова Поле (Field) і порядкового номера — Поле! (Fieldl), Поле2 (Field2) і т.д. — а тип матиме значення Текстовий (Text) із значеннями властивостей, заданими за умовчанням.
Щоб видалити поле з таблиці в режимі Таблиці, необхідно:
Виділити стовпець, який потрібно видалити.
Клацнути правою кнопкою миші на виділеному стовпці і з контекстного меню вибрати команду Видалити стовпець (Delete Column) або вибрати з головного меню команду Правка (Edit) і з меню, що розкривається, — команду Видалити стовпець (Delete Column).
Визначення ключових полів
Вище неодноразово згадувалося поняття ключового поля. Ключове поле — це одне або декілька полів, комбінація значень яких однозначно визначає кожен запис в таблиці. Якщо для таблиці визначені ключові поля, то Microsoft Access запобігає дублюванню або введенню порожніх значень в ключове поле. Ключові поля використовуються для швидкого пошуку і зв'язку даних з різних таблиць за допомогою запитів, форм і звітів.
У Microsoft Access можна виділити три типу ключових полів: лічильник, простий ключ і складений ключ. Розглянемо кожного з цих типів.
Для створення ключового поля типу Лічильник необхідно в режимі Конструктора таблиць:
Включити в таблицю поле лічильника.
Задати для нього автоматичне збільшення на 1.
Вказати це поле як ключового шляхом натиснення на кнопку Ключове поле (Primary Key) на панелі інструментів Конструктор таблиць (Table Design).
Якщо до збереження створеної таблиці ключові поля не були визначені, то при збереженні буде видане повідомлення про створення ключового поля. При натисненні кнопки Так (Yes) буде створене ключове поле лічильника з ім'ям Код (ID) і типом даних Лічильник (AutoNumber).
Для створення простого ключа досить мати поле, яке містить унікальні значення (наприклад, коди або номери). Якщо вибране поле містить значення, що повторюються або порожні, його не можна визначити як ключове. Для визначення записів, що містять дані, що повторюються, можна виконати запит на пошук записів, що повторюються. Якщо усунути повтори шляхом зміни значень неможливо, слідує або додати в таблицю поле лічильника і зробити його ключовим, або визначити складений ключ.
Складений ключ необхідний у випадку, якщо неможливо гарантувати унікальність запису за допомогою одного поля. Він є комбінацією декількох полів. Для визначення складеного ключа необхідно:
Відкрити таблицю в режимі Конструктора.
Виділити поля, які необхідно визначити як ключові.
Натиснути кнопку Ключове поле (Primary Key) на панелі інструментів Конструктор таблиць (Table Design).
Зауваження
Для складеного ключа істотним може опинитися порядок створюючих ключ полів. Сортування записів здійснюється відповідно до порядку ключових полів у вікні Конструктора таблиці. Якщо необхідно вказати інший порядок сортування без зміни порядку ключових полів, то спочатку потрібно визначити ключ, а потім натиснути кнопку Індекси (Indexes) на панелі інструментів Конструктор таблиць (Table Design). Потім у вікні, що з'явилося, Індекси (Indexes) потрібно вказати інший порядок полів для індексу з ім'ям Ключове поле (Primary Key).
Розглянемо як приклад застосування складеного ключа таблицю "Замовлено" (OrderDetails) бази даних (Northwind) (мал. 2.23).
В даному випадку як складений ключ використовуються поля "Код замовлення" (OrderlD) і "КодТовара" (ProductID), оскільки жодне з цих полів окремо не гарантує унікальність запису. При цьому в таблиці виводиться не код товару, а найменування товару, оскільки поле "КодТовара" (ProductID) даної таблиці містить підстановку з таблиці "Товари" (Products), а значення полів "КодТовара" (ProductID) цих таблиць зв'язані відношенням "одін-ко-многим" (одного запису таблиці "Товари" (Products) може відповідати декілька записів таблиці "Замовлено" (OrderDetails)). Обидва поля можуть містити значення, що повторюються. Так, одне замовлення може включати декілька товарів, а в різні замовлення можуть включатися однакові товари. В той же час поєднання полів "КодЗаказа" (OrderlD) і "КодТовара" (ProductID) однозначно визначає кожен запис таблиці "Замовлення" (OrderDetails).
Щоб змінити ключ, необхідно:
Відкрити таблицю в режимі Конструктора.
Вибрати наявні ключові поля.
Натиснути на кнопку Ключове поле (Primary Key), при цьому кнопка повинна прийняти положення Викл., а з області виділення повинні зникнути значки ключового поля.
Вибрати поле, яке необхідно зробити ключовим.
Натиснути на кнопку Ключове поле (Primary Key). При цьому у області виділення повинен з'явитися значок ключового поля.
Мал. 2.23. Приклад таблиці з використанням складеного ключа
Щоб видалити ключ, необхідно:
Відкрити таблицю в режимі Конструктора.
Вибрати наявне ключове поле (ключові поля).
Натиснути на кнопку Ключове поле (Primary Key), при цьому кнопка повинна прийняти положення Викл., а з області виділення повинен зникнути значок (значки) ключового поля.
Створення і використання індексів
З метою прискорення пошуку і сортування даних в будь-якій СУБД використовуються індекси. Індекс є засобом, який забезпечує швидкий доступ киданним в таблиці на основі значень одного або декількох стовпців. Індекс є впорядкованим списком значень і посилань на ті записи, в яких зберігаються ці значення. Щоб знайти потрібні записи, СУБД спочатку шукає необхідне значення в індексі, а потім по посиланнях швидко відбирає відповідні записи. Індекси бувають двох типів: прості і складені. Прості індекси є індексами, створеними по одному стовпцю. Індекс, побудований по декількох стовпцях, називається складеним. Прикладом складеного індексу може бути індекс, побудований по стовпцях "Прізвище" і "Ім'я".
Проте застосування індексів приносить не тільки переваги, але і недоліки. Головним серед них є той, що при додаванні і видаленні записів або при оновленні значень в індексному стовпці потрібно оновлювати індекс, що при великій кількості індексів в таблиці може уповільнювати роботу. Тому індекси звичайно рекомендується створювати тільки для тих стовпців таблиці, по яких найчастіше виконується пошук записів. У багатьох СУБД (наприклад, FoxPro) індекси зберігаються в окремих файлах і є предметом турботи розробників, оскільки при порушенні індексу пошук даних виконується некоректно. У Microsoft Access індекси зберігаються в тому ж файлі бази даних, що і таблиці і інші об'єкти Access. Індексувати можна будь-які поля, окрім МЕМО-полів, полів типу Гіперпосилання і об'єктів OLE.
Щоб створити простий індекс, необхідно:
Відкрити таблицю в режимі Конструктора.
Вибрати поле, для якого потрібно створити індекс.
Відкрити вкладку Загальні (General) і вибрати для властивості Індексоване поле (Indexed) значення Так (Допускаються збіги) (Yes (Duplicates OK)) або Так (Збіги не допускаються) (Yes (No duplicates)) (мал. 2.24).
Мал. 2.24. Установка індексу для поля
Ключове поле таблиці автоматично індексується і властивості Індексоване поле (Indexed) привласнюється значення Так (Збіги не допускаються) (Yes (No duplicates)).
Складений індекс створюється в спеціальному діалоговому вікні. Щоб створити складений індекс, необхідно:
Відкрити таблицю в режимі Конструктора.
На панелі інструментів Конструктор таблиць (Table Design) натиснути кнопку Індекси (Indexes.)
У першому порожньому рядку (мал. 2.25) поля Індекс (Index Name) ввести ім'я індексу.
Мал. 2.25. Діалогове вікно Індекси
У полі Ім'я поля (Field Name) натиснути на стрілку і вибрати перше поле, для якого необхідно створити індекс.
У наступному рядку поля Ім'я поля (Field Name) вказати друге індексоване поле. (Для даного рядка поле Індекс (Index Name) повинно залишатися порожнім.) Повторіть цю операцію для всіх полів, які необхідно включити в індекс. У індексі може бути використано до 10 полів
Зауваження
За умовчанням встановлюється порядок сортування За збільшенням (Ascending). Для сортування даних полів по убуванню в полі Порядок сортування (Sort Order) у вікні індексів вкажіть значення По убуванню (Descending).
Діалогове вікно Індекси (Indexes) використовується також для перегляду, зміни і видалення існуючих індексів. Змінити можна:
назва індексу в полі Індекс (Index Name);
поле таблиці, відповідне даному індексу, вибравши нове поле із списку в полі Ім'я поля (Field Name);
порядок сортування в полі Порядок сортування (Sort Order); П властивості даного індексу в нижній частині вікна (мал. 2.26):
Ключове поле (Primary) визначає, чи є індексоване поле ключовим;
Унікальний індекс (Unique) визначає, чи повинне бути кожне значення в цьому полі унікальним;
Пропуск порожніх полів (Ignore Nulls) визначає, включаються або не включаються в індекс запису з порожнім (Null) значенням даного поля.
Мал. 2.26. Діалогове вікно індексів для таблиці "Клієнти"
Видалення індексу виконується точно так, як і видалення поля в Конструкторі таблиць. Просто виділіть рядок з потрібним індексом і натисніть клавішу <Delete> або скористайтеся контекстним меню.
Скріплення таблиць на схемі даних
Для того, щоб було зручно переглядати, створювати, видаляти і модифікувати зв'язки між таблицями, в Microsoft Access використовується схема даних (Relationships) (мал. 2.27).
Мал. 2.27. Приклад схеми даних
Щоб відкрити схему даних, необхідно виконати команду Сервіс, Схема даних (Tools, Relationships). За умовчанням схема міститиме всі таблиці із зв'язками. Тому сюди буде включена, наприклад, наша нова таблиця "Список розсилки сповіщень", яка була пов'язана з таблицею "Клієнти" (Customers) за допомогою Майстра підстановок (див. разд. "Використання Майстра підстановок" вище в даному розділі).
Щоб прибрати яку-небудь таблицю з схеми даних, необхідно клацнути правою кнопкою миші на будь-якому місці цієї таблиці і з контекстного меню вибрати команду Приховати таблицю (Hide table). Наприклад, на мал. 2.27 таблиця "Список розсилки сповіщень" прихована.
Зауваження
Видалення таблиці з схеми даних не означає видалення її з бази даних, просто вона не присутня в схемі.
Щоб знов додати в цю схему згорнуту таблицю ("Список розсилки сповіщень") або таблицю, у якої зв'язки ще не встановлені, необхідно:
Клацнути правою кнопкою миші на вільному просторі схеми даних і з контекстного меню вибрати команду Додати таблицю (Show table).
У діалоговому вікні Додавання таблиці (Show table) розкрити вкладку Таблиці (Tables), вибрати із списку таблицю "Список розсилки сповіщень", і натиснути кнопку Додати (Add) (мал. 2.28).
Мал. 2.28. Діалогове вікно Додавання таблиці
Зауваження
Якщо потрібно додати до схеми декілька таблиць, доведеться повторити цю операцію для кожної таблиці.
Натиснути кнопку Закрити (Close), щоб закрити діалогове вікно Додавання таблиці (Show table).
В даному випадку зв'язок між таблицями Access будує автоматично. Це відбувається тоді, коли дві таблиці мають однакові назви зв'язаних полів і узгоджені типи даних, причому хоч би в одній з таблиць зв'язане поле є ключовим.
Зауваження
Узгоджені типи даних означають наступне: якщо ключове поле має тип даних Лічильник (AutoNumber), то відповідне йому поле в іншій таблиці повинне мати тип Довге ціле (Long Integer). У решті випадків типи даних повинні просто співпадати.
Якщо потрібний зв'язок автоматично не створений, її можна створити двома шляхами. Перший шлях — графічний. Слід вибрати в головній таблиці поле для зв'язку, натиснути ліву кнопку миші і перетягнути поле в другу таблицю. Відпустити ліву кнопку миші над тим полем підлеглої таблиці, з яким встановлюється зв'язок. Після цього з'явиться діалогове вікно Зміна зв'язків (Edit Relationships) (мал. 2.29).
Альтернативний варіант — вибрати команду Зв'язку, Змінити зв'язок (Relationships, Edit Relationships) з головного меню Access. Ця команда з'являється в меню, коли відкрито вікно Схема даних (Relationships).
У діалоговому вікні Зміна зв'язків (Edit Relationships) можна вибрати із списків назви зв'язаних таблиць і полів для скріплення. Якщо відношення між таблицями "одін-ко-многим", то зліва із списку Таблиця/запит (Table/ Query) вибирається головна таблиця і поле в цій таблиці, а справа із списку Зв'язана таблиця/запит — підпорядкована і відповідно поле в ній. Якщо відношення "одін-к-одному", то порядок таблиць значення не має. Якщо ви встановлювали зв'язок графічно, то всі поля в списках вже вибрані, і потрібно тільки визначити правила посилальної цілісності.
Мал. 2.29. Вікно Зміна зв'язків
Для цього встановлюють прапорець Забезпечення цілісності даних (Enforce Referential Integrity) і один або обидва прапорці: каскадне оновлення зв'язаних полів (Cascade Update Related Fields) і каскадне видалення зв'язаних записів (Cascade Delete Related Records) (див. наступний розділ).
При необхідності можна змінити параметри об'єднання, для чого потрібно натиснути кнопку Об'єднання (Join Type) і вибрати один з перемикачів (мал. 2.30):
Об'єднання тільки тих записів, в яких зв'язані поля обох таблиць співпадають;
Об'єднання ВСІХ записів з <имя першої таблицы> і лише тих записів з <имя другий таблицы>, в яких зв'язані поля співпадають;
Об'єднання ВСІХ записів з <имя другий таблицы> і лише тих записів з <имя першої таблиці >, у яких зв'язані поля співпадають.
За умовчанням встановлюється перший перемикач. Натиснути кнопку ОК.
Мал. 2.30. Діалогове вікно Параметри об'єднання
Коли створюється новий зв'язок, можна також скористатися кнопкою Нове (Create New) і у вікні Створення (Create New) ввести імена зв'язуваних таблиць і імена полів, використовуваних для зв'язку. Натиснути кнопку ОК.
Після установки всіх параметрів зв'язку необхідно натиснути кнопку ОК у вікні Параметри об'єднання (Edit Relationship) і закрити вікно Схема даних (Relationship), натиснувши на кнопку Закрити у правому верхньому кутку вікна.
Забезпечення цілісності даних
У Microsoft Access забезпечується можливість автоматичної перевірки цілісності даних в зв'язаних полях. Цілісність даних означає систему правил, використовуваних для підтримки зв'язків між записами в зв'язаних таблицях, а також для забезпечення захисту від випадкового видалення або зміни зв'язаних даних. Встановити перевірку цілісності даних можна, якщо виконані наступні умови:
зв'язане поле головної таблиці є ключовим полем або має унікальний індекс;
зв'язані поля мають один тип даних. Тут існує два виключення. Поле лічильника може бути пов'язано з числовим полем, якщо в останньому полі у властивості Розмір поля (FieldSize) вказано значення Довге ціле (Long Integer), або в обох полях властивість Розмір поля (FieldSize) має значення Код реплікації (Replication ID);
обидві таблиці належать одній базі даних Microsoft Access.
Зауваження
Таблиці одного додатку можуть міститися і в декількох файлах бази даних (див. також гл. 3).
Щоб забезпечити цілісність, робота з даними повинна проводитися з урахуванням ніжеперечисленних правил.
Неможливо ввести в зв'язане поле підлеглої таблиці значення, відсутнє в зв'язаному полі головної таблиці. Проте можна ввести порожнє значення, що показує, що для даного запису зв'язок відсутній.
Не допускається видалення запису з головної таблиці, якщо існують пов'язані з нею записи в підлеглій таблиці.
Неможливо змінити значення ключового поля в головній таблиці, якщо існують записи, пов'язані з даною таблицею.
Щоб ці правила контролювалися для конкретного зв'язку, при її створенні слід встановити прапорець Забезпечення цілісності даних (Enforce Referential Integrity). Тоді будь-яка спроба виконати дію, що порушує одне з перерахованих вище за правила, приведе до висновку на екран попередження, а саму дію виконано не буде.
Щоб подолати обмеження на видалення або зміну зв'язаних записів, зберігаючи при цьому цілісність даних, слід встановити прапорці каскадне оновлення зв'язаних полів (Cascade Update Related Fields) і каскадне видалення зв'язаних записів (Cascade Delete Related Records). Якщо встановлений прапорець каскадне оновлення зв'язаних полів (Cascade Update Related Fields), то при зміні ключового поля головної таблиці автоматично будуть змінені і відповідні значення поля зв'язаних записів. Якщо встановлений прапорець каскадне видалення зв'язаних записів (Cascade Delete Related Records), то при видаленні запису в головній таблиці віддаляються і всі зв'язані записи в підлеглій таблиці.
