Засоби розробки додатків у MS Access
Під додатком MS Access ми розуміємо таку програму роботи з базою даних, створювану в середовищі MS Access, працювати з якою зможе непідготовлений користувач. Користувач, який вводить інформацію в базу даних, щоб після деякої обробки отримати на виході (на екрані або в друкарському вигляді) всі необхідні йому документи, не зобов’язаний володіти навичками роботи з MS Access. Усе, що йому може знадобитися для виконання роботи, має забезпечити простий і зручний інтерфейс додатка, що створюється розробником. Додаток має забезпечити захист від випадкових помилок при введенні, а також виникнення недоку- ментованих ситуацій. Повідомлення системи про помилки, зрозумілі фахівцеві з баз даних, у додатку мають бути прив’язані до специфіки тієї предметної області, яку моделює програма, і «не лякати» кінцевого користувача.
MS Access забезпечує захист додатка, надаючи різні права неоднаковим категоріям користувачів. Ці права визначаються обліковими записами користувачів. Авторизований вхід дасть змогу, наприклад, одним користувачам або групам користувачів лише проглядати дані з бази, тоді як інші зможуть редагувати їх і вводити нову інформацію. При цьому права надаються не тільки на таблиці і запити, які безпосередньо пов’язані з даними, а й на елементи інтерфейсу, наприклад форми і звіти. При здачі додатка замовникові зазвичай забороняється змінювати інтерфейс і програмний код. Але для певних облікових записів це вирішується (повністю або частково) з тим, щоб була можливість своєчасно відтворювати в додатку зміни, які відбуваються в предметній області.
MS Access дає змогу створювати системи меню і панелі інструментів, а також управляти ними програмним способом, унаслідок чого завершений додаток вже не міститиме нічого, що належить до середовища розробки, пропонуючи лише засоби, зумовлені специфікою завдань, що вирішуються розробленим додатком. Можна навіть «заховати» вікно бази даних, яке дає безпосередній доступ до її об’єктів і об’єктів додатка, а також видалити з додатка всі тексти програм.
У цьому виданні ми розглядаємо створення такого додатка на прикладі відносно простої бази даних. У процесі розробки додатка ви познайомитеся зі створенням основних об’єктів MS Access, а також із програмуванням мовою VBA(Visual Basic for Applications), яка забезпечує програмну підтримку всіх продуктів пакету MS Office і дає можливість реалізувати ті завдання бізнес-логіки, які не виконуються стандартними засобами.
Розробка додатка для роботи з базами даних включає
такі етапи:
— формулювання і уточнення завдань, які мають вирішуватися в рамках додатка;
— проектування таблиць, що моделюють логічну модель даних предметної області;
— створення макета додатка і призначеного для користувача інтерфейсу за допомогою форм і звітів;
— автоматизація бізнес-логіки предметної області за допомогою подієвих процедур і макросів;
— оформлення проекту у вигляді закінченого додатка за допомогою створення головної форми запуску, управління системою меню і панелями інструментів.
На першому етапі розробникові слід з’ясувати собі ті завдання, які має вирішувати додаток. Насамперед це дасть змогу правильно спроектувати таблиці. Зазвичай на цьому етапі розробник тісно взаємодіє із замовником, щоб зрозуміти специфіку тієї сфери діяльності, в якій буде реалізовано роботу з базою даних. Важливість цього етапу полягає в тому, що помилки, які тут можуть бути допущені, спричинять значні зміни в додатку, якщо вони будуть відмічені на одному з подальших етапів розробки. Такі помилки ускладнюють подальшу розробку і супровід програмного продукту.
Проектування таблиць
Створення нової бази даних. Перш ніж перейти до проектування таблиць, потрібно відкрити наявну базу даних або створити нову. Щоб створити нову базу даних, слід запустити MS Access (наприклад, за допомогою команди Пуск=>Программи=>Місгово^ Office=>Microsoft Office Access 2003).
Тут і далі символ «=>» розділяє послідовно виконувані дії користувача. Наведена вище в дужках послідовність Пуск=>Программы... означає, що потрібно клацнути на Пуск, потім у меню Программы зайти в підменю Microsoft Office, де вибрати команду Microsoft Office Access 2003.
Наступні дії зі створення файла бази даних залежать від версії пакета Microsoft Office. Це може бути ввідне вікно у версіях до Microsoft Office 2000 включно або панель завдань в Microsoft Office ХР. У цьому практикумі дотримано версії Microsoft Office Access 2003.
У панелі завдань натисніть на гіперпосилання Новая база данных.... Тепер потрібно дати ім’я файлу бази даних і вказати папку, в якій вона зберігатиметься. Виконавши ці дії, клацніть на Создать.
На відміну від багатьох інших застосувань, в яких створювані документи можна записати на диск у будь-який час, в Access файл бази даних відразу створюється на диску. Це зумовлено специфікою роботи з базами даних, що вимагає попереднього створення структури, в якій згодом зберігатимуться всі об’єкти бази даних. Тому по команді Сохранить в меню Файл поточний об’єкт (таблиця, форма, звіт тощо) зберігатиметься вже в існуючому файлі бази даних. Водночас зберігання даних (записів) виконується автоматично, коли редагований запис перестає бути поточним, тобто при переході до будь-якого іншого запису. Якщо ж з якої-небудь причини перехід до іншого запису після редагування поточного недоцільний, для збереження запису можна виконати команду Запись=>Сохранить запись.
У панелі завдань є інші варіанти створення нової бази даних з наявного файла бази даних (файл .mdb) або проекту (файл .adp). Проект — додаток, призначений для роботи з базами даних на SQL Server. Крім того, можна створити базу даних на основі наявних шаблонів типових баз даних, причому для створення деяких з них передбачено допомогу майстрів. Таким чином, у вас є можливість створити придатну для роботи базу даних усього лише за декілька хвилин, практично не вміючи працювати в MS Access. Якщо передбачається розробити базу даних, близьку за структурою до однієї з типових, можна скористатися останньою як заготівкою.
При відкритті або створенні бази даних на екрані з’являється головне її вікно. Відмітимо, що закриття цього вікна приводить до завершення роботи додатка, але не означає кінець роботи з Access. Головне вікно бази даних має низку вкладок, кожна з яких містить відповідні об’єкти бази даних (форми, звіти, запити, ...) і стандартні кнопки: Открыть, Конструктор, Создать. Крім цих кнопок безпосередньо у вікні наявні декілька гіперпо- силань для швидшого вибору команди створення об’єкта. Як правило, це майстри і режим конструктора.
Тому щоб створити таблицю бази даних, потрібно у вікні бази даних перейти до вкладки Таблицы, вибрати одне з гіперпосилань або клацнути на кнопці Создать. У другому випадку на екрані з’явиться діалогове вікно вибору способу створення таблиці (рис. 80). Варіант Режим таблицы дає змогу відразу вводити інформацію в таблицю з прийнятими іменами стовпчиків (полів); при цьому тип даних поля визначається за типом інформації, що вводиться. Змінити ім’я стовпчика можна, виконавши подвійне клацання на імені поля. Це, а також зміну типів полів можна здійснити в режимі Конструктор — основному режимі створення або зміни структури таблиці.
Повернімося до вибору способу побудови таблиці (рис. 80). Мастер таблиц дає змогу в діалозі з користувачем виконати побудову таблиці на базі типових полів типових таблиць.
Пункти списку Импорт таблиц і Связь с таблицами дають можливість відповідно помістити в поточну базу даних копії таблиць, що знаходяться в іншій базі даних, або встановити з ними зв’язок. Останнє можна використовувати для організації роботи в мережі декількох користувачів або додатків, що працюють з одними і тими самими даними.
Щоб зрозуміти це, слід докладніше зупинитися на визначенні поняття «індекс».
Індекс (або індексний файл) — це файл, що містить значення з вибраного поля і покажчики до відповідних значень файла в початковій таблиці, який називається індексованим. При виконанні запиту, в умовах відбору якого наявні значення з індексованого поля, спочатку є видимим індексний файл до знаходження потрібного значення, після чого по покажчику відразу знаходять потрібний запис в індексованому файлі. Наявність індексного файла, що навіть містить усі без винятку значення з індексованого файла, скорочує кількість дискових операцій уведення-виведення, що істотно прискорює виконання запиту. Це відбувається за рахунок того, що в індексному файлі містяться відсортовані значення індексованого поля. Тому для знаходження певного значення в середньому потрібно буде проглянути лише половину записів у цьому файлі при його скануванні. Крім того, індексний файл значно менший від початкового, оскільки не містить усіх полів і тому займає менший дисковий простір, ніж початковий файл. У результаті для його перегляду потрібна в середньому менша кількість дискових операцій, які будуть найповільнішою ланкою при роботі з базою даних. З іншого боку, використання індексу сповільнює операції додавання і видалення записів, оскільки вони вимагають внесення відповідних змін і в індексний файл.
Як бачимо, в Access передбачено два типи індексованих полів — поля, що допускають, і поля, що не допускають уведення однакових значень. Наприклад, якщо в базі даних є таблиця страхових компаній, то поле з назвою компанії можна зробити індексованим із забороною значень, що повторюються. Це перешкодить уведенню в базу даних двічі однієї і тієї самої компанії. Спроба це зробити супроводжуватиметься повідомленням про помилку.
В індексах можуть використовуватися кілька полів з індексованого файла. Такі індекси називаються складеними. Складені індекси прискорюють виконання запитів, що відбирають записи за декількома полями. Які індекси створювати в той або інший момент експлуатації бази даних, залежить безпосередньо від завдань, які мають вирішувати проектоване застосування.
Щоб створити складений індекс в MS Access, потрібно в режимі конструктора необхідної таблиці виконати команду Вид/ Индексы. Потім у стовпчик Індекс вікна Индексы слід увести назву індексу, а в стовпчику Имя поля — перерахувати одне за одним всі необхідні поля індексованої таблиці, не повторюючи в кожному рядку назву індексу. При цьому імена полів можна вибирати зі списку, що розкривається. Окрім перерахованих дій у стовпчику Порядок сортировки слід вказати, як сортуватимуться значення по кожному полю індексу. Легко зрозуміти, що порядок сортування прискорюватиме вибірку, особливо в разі повторюваних значень індексних полів (неунікальний індекс). Відзначимо, що для таблиці може бути створено декілька індексів (рис. 81). Зазвичай індекси створюються відповідно до призначення бази даних і, як правило, включають ті поля таблиці, за якими ймовірно вестиметься пошук у запитах до бази даних. Якщо заздалегідь не можна визначити, скільки індексів буде потрібно для тієї або іншої таблиці і які поля слід включити в кожен з них, до цього питання можна повернутися вже в процесі експлуатації бази даних, проаналізувавши продуктивність і характер виконуваних запитів. Сказане не стосується до первинних ключів, для яких індекс створюється автоматично, що цілком виправдано в більшості випадків.