Засоби розробки додатків у 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). Зазвичай індекси створюються відповідно до призначення бази даних і, як правило, включають ті поля таблиці, за якими ймовір­но вестиметься пошук у запитах до бази даних. Якщо заздалегідь не можна визначити, скільки індексів буде потрібно для тієї або іншої таблиці і які поля слід включити в кожен з них, до цього пи­тання можна повернутися вже в процесі експлуатації бази даних, проаналізувавши продуктивність і характер виконуваних запи­тів. Сказане не стосується до первинних ключів, для яких індекс створюється автоматично, що цілком виправдано в більшості ви­падків.