Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовики практика access.doc
Скачиваний:
12
Добавлен:
19.02.2016
Размер:
712.19 Кб
Скачать

Побудова форм для введення даних

Для побудови форм активізуємо закладку Формы вікна бази даних рисунок 3. Як і для таблиць, побудова об'єкта здійснюється кнопкою Создать.

Для створення форм зручно скористатись майстром форм рисунок 16.

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

У прикладі, що розробляється, при побудові форми для таблиці ПОСАДИ необхідно вибрати всі поля. На другому кроці рисунок 18 майстер дає можливість забезпечити зовнішній вигляд форми структурно виваженим.

Рисунок 16. Вікно вибору режиму створення форми

Рисунок 17. Вікно вибору таблиць та полів для форми

Виберемо вигляд форми в один столбец. На третьому кроці рисунок 19 майстер забезпечує дизайн форми.

Користувач вибирає той стиль, який йому більше до вподоби. Нарешті, на останньому, четвертому кроці майстер пропонує назвати форму та вибрати варіант наступних дій користувача: відкрити форму для накопичення (редагування) даних або для подальшого редагування форми, яка побудована майстром.

Рисунок 18 Вибір зовнішнього вигляду форми

Рисунок 19. Вибір оформлення форми

Майстер на цьому кроці також дає можливість завантажити вікно-підказку по елементах побудованої форми та правилах роботи з нею.

Майже на одному подиху будується форма і для другої таблиці – ПрацівникИ, але, на відміну від побудови форми для таблиці ПОСАДИ, тут бажано при формуванні множини полів потурбуватись про наявність поля Назва з таблиці ПОСАДА. Цей елемент у формі таблиці ПрацівникИ допоможе бачити, а при необхідності і виправляти назву посади.

Форма для таблиці ЗАРПЛАТА будується за тими ж правилами, що й попередні, але на відміну від них тут виникає необхідність зосередити певні сили та вміння для побудови обчислень.

Спочатку в середовищі майстра формуємо множину полів форми: це всі поля таблиці ЗАРПЛАТА, поля Назва та ТарифЗаГодину з таблиці ПОСАДА, а також поля Прізвище, Ім’я та По-батькові з таблиці ПРАЦІВНИКИ. Після закінчення звичайної роботи майстра побудови форм необхідно потурбуватись про поля, що обчислюються. Тобто, вже побудовану форму для таблиці ЗАРПЛАТА потрібно редагувати.

Для цього її треба відкрити конструктором. Далі головне: необхідно визначитись, в який момент виконувати обчислення? Тут відповідь неоднозначна. Все залежить від вибору подій, після яких виконуються ті чи інші обчислення. Можна рекомендувати обчислення кожного виразу вести, як тільки змінюється значення його аргументів.

Після відповіді на це питання в формі ЗАРПЛАТА спочатку забезпечимо обчислення поля СумаНарахована. Значення цього поля залежить від значень двох полів: КількістьГодин та ТарифЗаГодину. У властивостях елементу форми КількістьГодин рисунок 20 вибираємо закладку События, на рівні После обновления замовляємо значення Процедура обработки событий і далі кнопкою відкриваємо вікно модуля рисунок 21, де редагуємо відповідну процедуру з назвою КількістьГодин_AfterUpdate (дослівно — КількістьГодин_ПісляОновлення). Тіло цієї процедури буде таким:

СумаНарахована = КількістьГодин* ТарифЗаГодину

Так само будуємо процедуру обробки події оновлення другого аргументу поля СумаНарахована, а саме аргументу ТарифЗаГодину. Тепер буде побудована друга процедура з назвою ТарифЗаГодину_AfterUpdate, в якій тіло процедури співпадає з тілом процедури КількістьГодин_AfterUpdate, отже, можна скористатись буфером обміну замість набору тексту.

Рисунок 20. Вікно властивостей поля Кількість годин

Рисунок 21 Вікно модуля, пов’язаного з формою «Зарплата»

Значення інших полів, що обчислюються, також залежать врешті-решт від аргументів КількістьГодин та ТарифЗаГодину. Це означає, що процедури, вже визначені вище, необхідно редагувати додаванням нових інструкцій.

Редагування процедур виконується в тому ж вікні модуля, в яке можна потрапити знову ж таки через властивості поля та обробку подій (кнопка ). Беручи до уваги алгоритм, який побудовано вище (формули (1) - (6)), ці процедури набувають такого вигляду:

Dim s As Integer

СумаНарахована = КількістьГодин * ТарифЗаГодину

s = Int(СумаНарахована)

Податок = min(85 - 17, max(s - 17, 0)) * 10 / 100 + _

min(170 - 85, max(s - 85, 0)) * 15 / 100 + _

min(1020 - 170, max(s - 170, 0)) * 20 / 100 + _

min(1700 - 1020, max(s - 1020, 0)) * 30 / 100 + _

max(s - 1700, 0) * 40 / 100

ВнесокПФ = IIf(СумаНарахована <= 150, _

СумаНарахована * 1 / 100, min(СумаНарахована * 2 / 100, 32))

ВнесокФССбр = min(СумаНарахована * 0.5 / 100, 8)

ВнесокФССл = IIf(СумаНарахована <= 150, _

СумаНарахована * 0.25 / 100, min(СумаНарахована * 0.5 / 100, 8))

СумаНаРуки = СумаНарахована - (Податок + ВнесокПФ + ВнесокФССбр)

Крім названих вище процедур необхідно записати в цьому ж модулі функції max та min:

Private Function max(a, b)

max = If(a >= b, a, b)

End Function

Private Function min(a, b)

min = If(a >= b, b, a)

End Function

Пояснення:

Інструкція Dim s As Integer у мові VBA означає опис типу змінної s, а саме, її тип визначено як цілий.

Знак «_» в кінці тексту деяких рядків процедур означає перенесення частини поточної інструкції на новий рядок.

Зауваження:

Критерій вибору обробки подій у даному прикладі може не привести до бажаного результату, якщо зміни аргументів вже проведені за межами форми. Тому при необхідності можна запропонувати обробляти подію Выход. Відповідні процедури будуть ідентичними до записаних вище.

Остаточний вигляд форми для таблиці ЗАРПЛАТА зображено на рисунку 22.

Рисунок 22. Остаточний вигляд форми для таблиці ЗАРПЛАТА

Побудова звітів

Нагадаємо:

Звіт необхідно побудувати групуванням за полем Посада, сортуванням за полем Прізвище.

Повертаємось до вікна бази даних рисунок 3 та вибираємо закладку Отчеты. Кнопкою Создать починаємо роботу з побудови звіту рисуно23. Тут, як і у випадку побудови форми, зручно скористатись майстром.

Крім вибору варіанту технології побудови звіту необхідно визначитись з базовою таблицею для звіту.

На першому кроці рисунок 24 майстер звіту пропонує визначитись з множиною полів для вибраної таблиці (таблиць).

Крім всіх полів таблиці ЗАРПЛАТА, виберемо поля Назва та ТарифЗаГодину з таблиці ПОСАДА, а також поля Прізвище, Ім’я, По-батькові та Посада з таблиці ПРАЦІВНИКИ.

Рисунок 23. Вікно вибору варіанту створення звіту

Рисунок 25. Вікно вибору списку полів для звіту

На другому кроці рисунок 25 майстер пропонує вибрати таблицю, що є базовою. Цю таблицю вже оголошено на самому початку побудови звіту, тому за угодою майстер саме її виділяє радіокнопкою.

Третій крок рисунок 26 — крок групування даних. Тут вибираємо поле Посада (яке належить таблиці ПРАЦІВНИКИ!).

Рисунок 25. Вибір базової таблиці

Рисунок 26. Групування даних звіту

Четвертий крок майстра рисунок 27 присвячений сортуванню, де для нашого прикладу обмежимось одним рівнем сортування, а саме, сортуванням по полю Прізвище.

Рисунок 27. Сортування даних звіту

Скористаємось на цьому кроці можливістю підвести підсумки по полях, що обчислюються. Це можна зробити, якщо натиснути на кнопку Итоги рисунок 28.

Рисунок 28 Вибір підсумкових значень

На п’ятому кроці рисунок 29 здійснюється вибір форми звіту, в тому числі, ориєнтації звіту. Оскільки у нашому прикладі вибраних полів досить багато, то з метою розміщення рядка звіту на одній сторінці формату А4 вибираємо альбомну орієнтацію звіту, а макет — той, що до вподоби.

Рисунок 29. Вибір вигляду макету звіту

Пройшовши шостий крок майстра — крок вибору стилю, потрапляємо на фінальну стадію діалогу — завдання назви звіту та вибору наступних дій: перегляду звіту, або його редагування. Як бачимо, останні кроки майстра побудови звіту дуже схожі на відповідні кроки майстра побудови форм.

Примітка:

За послідовність вибраних полів майстер не відповідає. На це треба зважити, коли вибираємо поля. Під час вибору наступного поля необхідно забезпечити у вікні вибраних полів їх послідовність за рахунок пересування по рядках цього вікна на той чи інший рівень.

Коли звіт містить багато полів, результат автоматичного їх розміщення у звіті, як правило, не задовольняє користувача. А це означає, що після роботи майстра необхідно конструктором доопрацювати дизайн, а то й просто читабельність звіту.