Бази даних в Excel, Access з викликами на VBA
Зміст
Завдання
Рішення
Висновок
Список використаної літератури
Варіант №2
Завдання
Створити базу даних „Звіт про співробітників фірми”.
Кількість записів – не менш 20.
Для розв’язання задачі необхідно:
Сформувати вихідну таблицю та роздрукувати її.
Визначити суму окладів по відділам фірми.
Знайти відділ з максимальною кількістю співробітників.
Відсортувати таблицю за ПІБ.
Знайти ПІБ співробітників з мінімальним окладом.
Визначити загальну суму окладів по фірмі.
Рішення
Таблиця „Звіт про співробітників фірми” у режимі даних середовища MS Excel наведена на рис.1.
Рис.1.
Додавання проміжних і остаточних підсумків виконується після сортування вихідної бази по обраному полю. Виконаємо сортування вихідної бази по полю "Назва відділу" і додамо проміжні і загальний підсумки. Для додавання підсумків відкриємо вікно діалогу "Проміжні підсумки". Для цього виконуємо команди меню Данные/Итоги. У вікні діалогу задамо поле, у якому буде відслідковуватися зміна значень (наприклад поле " Назва відділу "). Потім вкажемо в рядку "Операция" той вид операції, що потрібний для виконання завдання (Сумма, Кількість і т.д.). У списку вікна діалогу "Додати підсумки по" укажемо, яких ще полях бази даних необхідно виконати аналогічні дії. Вікно діалогу з установленими параметрами наведено на Рис.2.
Рис.2.
Результат встановлення проміжних підсумків зображений на рис.3.
Рис.3.
Додамо ще один рівень підсумків за кількістю співробітників відділу, та розрахуємо максимальну кількість чоловік у відділі (рис.4)
Рис.4.
Відсортуємо таблицю за ПІБ (меню Данные/Сортировка...) Рис.5.
Для звичайного сортування бази даних по одному полю ( по зростанню чи по убуванню) необхідно скористатися пунктом меню Данные Сортировка чи піктограмами на графічному меню.
Сортування по зростанню Сортування по убуванню
При цьому курсор повинний бути встановлений у поле, що будемо сортувати. Для сортування по зростанню по полю "ПІБ" установимо курсор на комірку у цьому полі і виберемо напрямок сортування "по зростанню".
Рис.5.
Результат сортування зображений на рис.6.
Рис.6.
Знайдемо ПІБ співробітників з мінімальним окладом (рис.7).
Рис.7.
До комірки Е32 занесено формулу =БИЗВЛЕЧЬ(A2:G26;E2;G31:G32). Критерій зображений у діапазоні G31:G32.
Експортуємо таблицю з середовища MS Excel до середовища MS Access (рис.8)
Рис.8.
Таблиця „Звіт” у режимі Конструктора середовища MS Access зображена на рис.9.
Рис.9.
Таблиця „Звіт” у режимі Таблиці середовища MS Access зображена на рис.10.
Рис.10.
Запит на вибірку „Сума окладів по відділам” у режимі Конструктора наведений на рисунку 11.
Рис.11.
Запит на вибірку „Сума окладів по відділам” у режимі Таблиці наведений на рисунку 12.
Рис.12.
Запит на вибірку „Сума окладів по фірмі” у режимі Конструктора наведений на рисунку 13.
Рис.13.
Запит на вибірку „Сума окладів по фірмі” у режимі Таблиці наведений на рисунку 14.
Рис.14.
Запит на вибірку „Максимальна кількість у відділі” у режимі Конструктора наведений на рисунку 15.
Рис.15.
Запит на вибірку „Максимальна кількість у відділі” у режимі Таблиці наведений на рисунку 16.
Рис.16.
Запит на вибірку „Сортування” у режимі Конструктора наведений на рисунку 17.
Рис.17.
Запит на вибірку „Сортування” у режимі Таблиці наведений на рисунку 18.
Рис.18
Запит на вибірку „Співробітник з мінімальним окладом” у режимі Конструктора наведений на рисунку 19.
Рис.19.
Запит на вибірку „Співробітник з мінімальним окладом” у режимі Таблиці наведений на рисунку 20.
Рис.20.
Алгоритм програми на VBA, що реалізований на другому аркушу книги MS Excel “ZVBA” зображений на наступному рисунку 21.
0100090000037800000002001c00000000000400000003010800050000000b0200000000050000000c02bf12390f040000002e0118001c000000fb021000070000000000bc02000000cc0102022253797374656d0012390f0000e4c7110072edc630509679020c020000390f0000040000002d01000004000000020101001c000000fb029cff0000000000009001000000cc0440001254696d6573204e657720526f6d616e0000000000000000000000000000000000040000002d010100050000000902000000020d000000320a1a13000001000400000000003c0fc01220002d00040000002d010000030000000000
Рис.21.
Інтерфейс програми на VBA зображений на наступному рисунку 22.
Рис.22.
Пароль на вхід до робочої книги 12345.
Програмний код на VBA наведений у лістингу 1
Лістинг 1
Private sub> CommandButton1_Click()
Worksheets("ZVBA").Cells(9, 8).Formula = "=Sum(G2:G9)"
Worksheets("ZVBA").Cells(16, 8).Formula = "=Sum(G10:G16)"
Worksheets("ZVBA").Cells(21, 8).Formula = "=Sum(G17:G21)"
Worksheets("ZVBA").Cells(22, 8).Formula = "=Sum(H3:H31)"
End sub>
Private sub> CommandButton2_Click()
Worksheets("ZVBA").Range("A2:G21").Sort _
Key1:=Worksheets("ZVBA").Range("E1")
End sub>
Private sub> CommandButton3_Click()
Worksheets("ZVBA").Range("A2:G21").Sort _
Key1:=Worksheets("ZVBA").Range("A1")
End sub>
Private sub> CommandButton4_Click()
Set myRange = Worksheets("ZVBA").Range("C2:C9")
a = Application.WorksheetFunction.Count(myRange)
MsgBox a
End sub>
Private sub> CommandButton5_Click()
Worksheets("ZVBA").Range("A2:G21").Sort _
Key1:=Worksheets("ZVBA").Range("G1")
a = Cells(2, 5)
MsgBox a
End sub>
Private sub> CommandButton6_Click()
ThisWorkbook.Saved = True
ThisWorkbook.Close
End sub>
Висновок
За допомогою введення формул з математичними, статистичними функціями та функціями для роботи з базами даних у відповідні комірки, та виконання команд меню у середовищі MS Excel були виконані пункти завдання. За допомогою запитів на вибірку у середовищі MS Access також були виконані пункти завдання. За допомогою кодів та макросів мови VBA для елементів управління – розроблених кнопок для меню також були виконані пункти завдання.
Список використаної літератури
Харитонова И.А., Михеева В.Д. Microsoft Access 2000: Разработка приложений. – СПб.: БХВ, 2000. – 832 с.
Робинсон С. Microsoft Access 2000: - СПб.: Издательский дом Питер, 2002. – 512 с.
Вейскас Дж. Эффективная работа с Microsoft Access 2000: СПб.: Питер-Пресс, 2002. – 1040 с.
Дженнингс Р. Использование Microsoft Access 2000: Специальное издание. - Издательский дом «Вильямс», 2002. – 1152 с.
Справка Microsoft Access 2002.//Корпорация Microsoft (Microsoft Corporation), - 2001.
Справка Microsoft Excel 2002.//Корпорация Microsoft (Microsoft Corporation), - 2001.
Руденко В.Д., Макарчук О.М., Патланжоглу М.О. Практичний курс інформатики. /За ред. Мадзігона В.М.-К.: Фенікс, 1997.-307 с.
Ситник В.Ф. та ін. Основи інформаційних систем – К.:КНЕУ, 2001
Береза А.М. Основи створення інформаційних систем – К.:КНЕУ, 2001
Информационные системы в экономике. Под редакцией профессора В.В.Дика – М.: Финансы и статистика, 1996
Смирнова Г.Н, Сорокин А.А., Тельнов Ю.Ф. Проектирование экономических информационных систем – М.: Финансы и статистика, 2003
Overview
Лист1ZVBA
Sheet 1: Лист1
Звіт про співробітників фірми | ||||||
№ з/п | Назва відділу | Код співробітника | Адреса | ПІБ | Посада | Оклад |
1 | Розробки | 1001 | Дніпропетровськ, вул.Південна, 18 | Борин Т.Л. | Інженер | 1100,00 |
2 | Розробки | 1002 | Дніпропетровськ, вул.Західна 12 | Бобов Н.А. | Інженер | 1150,00 |
3 | Розробки | 1003 | Дніпропетровськ, вул.Олева, 32-2 | Волин А.І. | Інженер | 1200,00 |
4 | Розробки | 1004 | Дніпропетровськ, вул.Алова, 24-5 | Додин Н.О. | Інженер | 1250,00 |
5 | Розробки | 1005 | Дніпропетровськ, вул.Північна, 34-6 | Гопов П.Л. | Інженер | 1300,00 |
6 | Розробки | 1006 | Дніпропетровськ, вул.Східна, 7 | Ганов І.П. | Економіст | 1350,00 |
7 | Розробки | 1007 | Дніпропетровськ, вул.Наукова, 56 | Вунин І.Д. | Економіст | 1400,00 |
8 | Розробки | 1008 | Дніпропетровськ, вул.Лутова, 45 | Бубин Р.І. | Економіст | 1450,00 |
Розробки Количество | 8 | |||||
Розробки Итог | 10200,00 | |||||
9 | Збірки | 2001 | Дніпропетровськ, вул.Січнева, 58 | Бобин Н.І. | Слюсар | 1500,00 |
10 | Збірки | 2002 | Дніпропетровськ, вул.Лютого, 79 | Габов Н.І. | Слюсар | 1550,00 |
11 | Збірки | 2003 | Дніпропетровськ, вул.Травнева, 98 | Гунин Г.Д. | Слюсар | 1600,00 |
12 | Збірки | 2004 | Дніпропетровськ, вул.Войкова, 67 | Апин О.Б. | Слюсар | 1650,00 |
13 | Збірки | 2005 | Дніпропетровськ, вул.Морська, 56-4 | Бойко Р.Н. | Слюсар | 1700,00 |
14 | Збірки | 2006 | Дніпропетровськ, вул.Жовтнева, 86-3 | Валин І.О. | Слюсар | 1750,00 |
15 | Збірки | 2007 | Дніпропетровськ, вул.Рижська, 65-5 | Генин О.І. | Завідувач | 1800,00 |
Збірки Количество | 7 | |||||
Збірки Итог | 11550,00 | |||||
16 | ВТК | 3001 | Дніпропетровськ, вул.Фучика, 84-9 | Гунов А.Б. | Контролер | 1850,00 |
17 | ВТК | 3002 | Дніпропетровськ, вул.Цеткин, 67-8 | Дадин Р.І. | Контролер | 1900,00 |
18 | ВТК | 3003 | Дніпропетровськ, вул.Зотова, 64-32 | Бабин І.І. | Контролер | 1950,00 |
19 | ВТК | 3004 | Дніпропетровськ, вул.Додина, 32-76 | Велин Т.І. | Контролер | 2000,00 |
20 | ВТК | 3005 | Дніпропетровськ, вул.Пуго, 6-64 | Гусев Г.Т. | Завідувач | 2050,00 |
ВТК Количество | 5 | |||||
ВТК Итог | Максимальний відділ | 8 | 9750,00 | |||
Общее количество | 20 | |||||
Общий итог | 31500,00 | |||||
Оклад | ||||||
Співробітник з мін.окладом: | Борин Т.Л. | 1100,00 |
Sheet 2: ZVBA
№ з/п | Назва відділу | Код співробітника | Адреса | ПІБ | Посада | Оклад | ||||||
1 | Розробки | 1001 | Дніпропетровськ, вул.Південна, 18 | Борин Т.Л. | Інженер | 1100,00 | Меню | |||||
2 | Розробки | 1002 | Дніпропетровськ, вул.Західна 12 | Бобов Н.А. | Інженер | 1150,00 | ||||||
3 | Розробки | 1003 | Дніпропетровськ, вул.Олева, 32-2 | Волин А.І. | Інженер | 1200,00 | ||||||
4 | Розробки | 1004 | Дніпропетровськ, вул.Алова, 24-5 | Додин Н.О. | Інженер | 1250,00 | ||||||
5 | Розробки | 1005 | Дніпропетровськ, вул.Північна, 34-6 | Гопов П.Л. | Інженер | 1300,00 | ||||||
6 | Розробки | 1006 | Дніпропетровськ, вул.Східна, 7 | Ганов І.П. | Економіст | 1350,00 | ||||||
7 | Розробки | 1007 | Дніпропетровськ, вул.Наукова, 56 | Вунин І.Д. | Економіст | 1400,00 | ||||||
8 | Розробки | 1008 | Дніпропетровськ, вул.Лутова, 45 | Бубин Р.І. | Економіст | 1450,00 | ||||||
9 | Збірки | 2001 | Дніпропетровськ, вул.Січнева, 58 | Бобин Н.І. | Слюсар | 1500,00 | ||||||
10 | Збірки | 2002 | Дніпропетровськ, вул.Лютого, 79 | Габов Н.І. | Слюсар | 1550,00 | ||||||
11 | Збірки | 2003 | Дніпропетровськ, вул.Травнева, 98 | Гунин Г.Д. | Слюсар | 1600,00 | ||||||
12 | Збірки | 2004 | Дніпропетровськ, вул.Войкова, 67 | Апин О.Б. | Слюсар | 1650,00 | ||||||
13 | Збірки | 2005 | Дніпропетровськ, вул.Морська, 56-4 | Бойко Р.Н. | Слюсар | 1700,00 | ||||||
14 | Збірки | 2006 | Дніпропетровськ, вул.Жовтнева, 86-3 | Валин І.О. | Слюсар | 1750,00 | ||||||
15 | Збірки | 2007 | Дніпропетровськ, вул.Рижська, 65-5 | Генин О.І. | Завідувач | 1800,00 | ||||||
16 | ВТК | 3001 | Дніпропетровськ, вул.Фучика, 84-9 | Гунов А.Б. | Контролер | 1850,00 | ||||||
17 | ВТК | 3002 | Дніпропетровськ, вул.Цеткин, 67-8 | Дадин Р.І. | Контролер | 1900,00 | ||||||
18 | ВТК | 3003 | Дніпропетровськ, вул.Зотова, 64-32 | Бабин І.І. | Контролер | 1950,00 | ||||||
19 | ВТК | 3004 | Дніпропетровськ, вул.Додина, 32-76 | Велин Т.І. | Контролер | 2000,00 | ||||||
20 | ВТК | 3005 | Дніпропетровськ, вул.Пуго, 6-64 | Гусев Г.Т. | Завідувач | 2050,00 | ||||||