Л а б о р а т о р н а я р а б о т а № 12
Створення процедур обробки об'єктів баз даних
1. Основні теоретичні і довідкові відомості
1.1. Загальні відомості про об'єкти доступу до даних
Програмна робота з об'єктами Access (таблицями, запитами, записами і ін.) здійснюється за допомогою DAO (Об'єкти доступу до даних), що являють собою взаємозв'язок між програмами мовою VBA і базами даних, з якими треба працювати.
Нижче наведений огляд деяких об'єктів.
DataBase - являє собою відкриту в робочій області базу даних. Для посилання на поточну базу даних використовується ключове слово CurrentDB. Набір DataBases містить у собі усі відкриті в робочій області об'єкти типу DataBase.
TableDef - являє собою опис таблиці, відкритої бази даних. Набір TableDefs є колекцією всіх таблиць, визначених в об'єкті типуDataBase.
Recordset - являє собою набір записів в основній таблиці об'єкта DataBase.У набір Recordsets входять усі відкриті об'єкти типу Recordset поточного об'єктуDataBase.
Field - являє собою стовпець даних. Об'єкт Field представляє значення конкретного поля. У набір Fields входять усі поля відкритої таблиці.
QueryDef - представляє собою опис запиту для об'єкта DataBase.Набір QueryDefs є сімейством усіх запитів в об'єкті типу DataBase.
Index-указує на порядок записів в об'єкті DataBase. У набір Indexs входять усі об'єкти типу Index, розміщені в QueryDef.
У кожного об'єкта є визначений набір характеристик (кількість записів таблиці, значення поля і ін.), які звуться властивостями об'єкта і методи (додати новий запис, відкрити таблицю і ін.), які вказують на операцію над об'єктом.
При посиланні на властивість використовується такий синтаксис:
Об'єкт.Властивість
Установка значення властивості здійснюється так:
Об'єкт.Властивість = Значення
Одержання значення властивостей здійснюється так:
Ім'я змінної = Об'єкт.Властивість
Синтаксис методу такий:
Об'єкт.Метод
Якщо метод використовує аргументи, то застосовується такий синтаксис
Об'єкт.Метод (аргумент1, аргумент2…)
1.2. Підключення до бази даних
Підключення до бази даних із процедури VBA складається з трьох етапів:
- оголошення змінних для об'єктів, які передбачається використовувати;
- відкриття бази даних;
- відкриття об'єкта Recordset для таблиці, з якою треба працювати.
1.3. Властивості і методи набору записів
Після підключення до бази даних і відкриття таблиці створюється новий набір записів і тепер основна робота відбувається з об'єктом Recordset.
Існує три типи наборів записів:
-табличний тип - визначає основну таблицю відкритої бази даних. Дії можуть бути здійснені тільки з набором записів табличного типу;
-динамічний тип - визначає таблицю, яка є результатом роботи запиту. Динамічні набори записів включають поля з різних таблиць. Вони називаються динамічними, тому що є можливість відновлення записів шляхом додавання, редагування і вилучення;
-простий тип - аналогічний динамічному з тією різницею, що всі записи є статичними, тобто не можна вносити ніякі зміни. Цей тип є найшвидшим і повинен використовуватися, якщо є необхідність тільки переглянути дані.
1.4. Властивості об'єкта Recordset
Rs.BOF-повертає значення True,якщо позиція поточного запису знаходиться перед першим записом.
Rs.Bookmark - встановлює або повертає значення Variant, яке ідентифікує поточний запис.
Rs.EOF-повертає значення True,якщо позиція поточного запису знаходиться нижче останнього запису.
Rs.RecordCount – повертає кількість записів у наборі.
Rs.Sort - повертає або встановлює порядок сортування в наборі записів динамічного і простого типів.
Rs.Fields.Count – повертає кількість полів поточної таблиці.
Rs.Fields.Name – повертає ім’я поля.
1.5. Методи об'єкта Recordset
Rs.AddNew-додає новий запис у набір табличних або динамічних записів.
Rs.Close - закриває набір даних.
Rs.Delete - вилучає поточний запис з набору табличних або динамічних записів.
Rs.Update - обновлює набір записів.
Rs.Edit - копіює поточний запис набору табличних або динамічних записів у буфер копіювання для подальшого редагування.
Rs.Move - переміщує покажчик поточного запису на визначену кількість записів.
Rs.MoveFirst, Rs.MoveLast, Rs.MoveNext, Rs.MovePrevious-переміщує поточний запис у першу, останню, наступну або попередню позицію поточного набору записів.
2. Порядок виконання роботи
1) Створіть таблицю, яку потрібно обробляти відповідно завдання до лабораторної роботи ( дивись Додаток).
2) Напишіть процедуру, яка реалізовує виконання завдання.
3. Контрольні питання
1. Які типи наборів записів таблиці Ви знаєте?
2. Які властивості об'єкта Recordset?
3. Які методи об'єкта Recordset?
Таблиця 12.1-“Завдання до лабораторної роботи №12”
№ вар. | Зміст завдання |
Внесіть зміни в таблицю “Відділ” поточної бази даних: підвищити оклад інженерам на 50 грн., ст.інженерам на 60 грн. | |
З таблиці “Відомість” поточної бази даних вивести список студентів, які склали всі іспити на 4 і 5. | |
З таблиці “Відділ” поточної бази даних вивести список інженерів, які мають вищу освіту і стаж роботи менше 5 років. | |
З таблиці “Відомість” поточної бази даних вивести список студентів, які мають хоча б одну двійку. | |
З таблиці “Відомість” поточної бази даних вивести список студентів, які склали всі іспити без двійок. | |
Для таблиці “Відомість” поточної бази даних визначити середній бал із кожного предмета. | |
З таблиці “Відомість” поточної бази даних вивести список предметів, з яких є хоча б одна двійка. | |
З таблиці “Відділ” поточної бази даних вивести список співробітників, які мають стаж роботи більше 10 років і оклад менше 300 грн.. | |
Для таблиці “Відомість” поточної бази даних визначити середній бал для кожного студента. | |
Внести зміни в таблицю “Відділ” поточної бази даних: усім співробітникам, які мають стаж роботи більше 10 років і не мають вищої освіти, підвищити оклад на 20 %.. | |
Для таблиці “Заводи” бази даних “Промисловість” вивести список заводів, у яких більше 1000 працівників. | |
Для таблиці “Заводи” поточної бази даних знайти завод з найбільшим річним обсягом виробництва. | |
Для таблиці “Заводи” поточної бази даних знайти завод, у якого найбільший відсоток працівників з вищою освітою. | |
Для таблиці “Заводи” поточної бази даних знайти завод, у якого найбільше відношення річного обсягу до чисельності робітників. | |
З таблиці “Відомість” поточної бази даних вивести список студентів, які мають найбільший середній бал. |
Додаток
Таблиці і варіанти завдань
Таблиця 1- “Товари”
Код товару | Марка | Опис товару | Код постачаль ника | Ціна | На складі | Поста чання припи нені |
Кава "Добра кава" | Мелений по 100 г | 2,61грн | Ні | |||
Кава "Nescafe Classic" | Розчинний по 100 г | 6,26грн | Ні | |||
Кава "Арабіка" | У зернах 100 г | 2,40грн | Ні | |||
Кава "Галка" | Розчинний по 50 г | 2,44грн | Ні | |||
Кава "Галка" | В пакетах по 10 г | 3,78грн | Ні | |||
Кава Maxima | Мелений по 250 г | 4,80грн | Так | |||
Кава "Віденська кава" | У зернах по 100 г | 1,94грн | Ні | |||
Чай Травневий | 200 г листовий | 4,66грн | Ні | |||
Чай Dilmah | 125 г лист. | 2,95грн | Так | |||
Чай "Батік" | Пакет 5 г по 10 шт | 1,00грн | Ні | |||
Чай Dilmah Gold | 100 г листовий | 2,39грн | Ні | |||
Чай Lipton | Пакет 2 г по 25 шт | 3,57грн | Так | |||
Чай Lipton | Асорті по 200 г | 15,6грн | Ні | |||
Чай Ahmad | Пакет 2 г по 25 шт | 3,17грн | Ні | |||
Чай Ahmad | Лист. з лимоном | 3,23грн | Ні | |||
Цукерки "Вечірній Київ" | 500 г | 8,56грн | Ні | |||
Цукерки "Грильяж" | 260 г | 4,73грн | Ні | |||
Цукерки "Пташине молоко" | 500 г | 3,96грн | Ні | |||
Цукерки "Асорті" | 500 г | 8,80грн | Ні | |||
Цукерки "Стріла" | 250 г | 2,65грн | Ні |
Таблиця 2- “Постачальники”
Код постачальника | Фірма постача льника | Звертатися до | Місто | Країна | Факс | Телеф он | Дата доставки |
АТ "Світоч" | Петрова В.М. | Львів | Україна | 245-223 | 234-340 | 12.08.03 | |
Pulkala | Смірнова К.А. | Хельсінкі | Фінляндія | 456-76-22 | 456-76-20 | 02.09.03 | |
Фабрика ім. К.Маркса | Сухова П.И. | Київ | Україна | 295-46-78 | 205-45-30 | 05.09.03 | |
Фабрика “Чай” | Валєєва Б.М. | Москва | Росія | 295-45-67 | 295-45-50 | 04.09.03 | |
АТ "Галка" | Коваленко М.М. | Львів | Україна | 245-700 | 245-756 | 10.08.03 | |
Dilmah | Лер П.А. | Штутгарт | Німеччина | 567-80-30 | 567-80-21 | 30.08.03 | |
Nestle | Кромм А. | Франкфурт на Майні | Німеччина | 4-757-320 | 4-757-320 | 11.09.03 | |
Фабрика "Світоч" | Кривенко А.А. | Львів | Україна | 256-901 | 256-978 | 23.09.03 |
Таблиця 3- “Покупці”
Код покупця | Назва фірми | Прізвище | Посада | Адреса | Телефон |
Оптовий магазин "Атланта" | Басів К.И. | менеджер | Озерна, 8 | 413-18-10 | |
Торговий дім | Заєць В.Д. | Представн. фірми | Чкалова, 31 | 225-54-12 | |
Агромаркет | Дидик С.М. | директор | Рейтерська, 51 | 228-57-30 | |
Бланко | Лось М.Н. | менеджер | Артема, 6 | 224-15-12 | |
Віденська кава | Калінін М.Т. | директор | Артема, 34 | 228-28-50 | |
Київський спортклуб | Довгань П.М. | менеджер | Дружби народів, 7 | 295-74-13 | |
НП Артекс продукт | Смєхов В.И. | Представн. фірми | Польова, 24 | 441-64-56 | |
НП "Ельдорадо" | Журбін А.С. | директор | Маяковського, 30 | 553-56-30 | |
Магазин "Явір" | Шкіль Ю.А. | директор | Пр. Перемоги 137 | 226-13-64 | |
«Валентино» | Крайчик М.Ю. | менеджер | Пр. Перемоги 137 | 226-23-54 |
Таблиця 4- “Замовлення”
Код замовлення | Код покупця | Покупець | Адреса | Дата продажу | Умова доставки |
Оптовий магазин "Атланта" | Озерна, 8 | 04.09.03 | Транспортом фірми покупця | ||
Торговий дім | Чкалова, 31 | 06.09.03 | Київтрансагентство | ||
Агромаркет | Рейтерська, 51 | 04.09.03 | Транспортом фірми продавця | ||
Бланко | Артема, 6 | 10.09.03 | Транспортом фірми продавця | ||
Віденська кава | Артема, 34 | 04.09.03 | Транспортом фірми покупця | ||
Київський спортклуб | Дружби народів, 7 | 20.09.03 | Транспортом фірми покупця | ||
НП Артекс продукт | Польова, 24 | 06.09.03 | Київтрансагентство | ||
НП "Ельдорадо" | Маяковського, 30 | 16.10.03 | Транспортом фірми продавця | ||
Магазин "Явір" | Пр. Перемоги 137 | 21.09.03 | Транспортом фірми продавця | ||
"Валентино" | Пр. Перемоги 19 | 29.09.03 | Транспортом фірми покупця |
Таблиця 5- “Продажі”
Код оплати | Код замовлення | Код товару | Марка | Ціна | Кіль кість | Вар тість | Дата оплати | Знижка (%) |
Кава «Добра кава» | 2,61грн | 10.09.03 | ||||||
Кава "Nescafe Classic" | 6,26 грн | 12.09.03 | ||||||
Кава "Арабіка" | 2,40грн. | 21.09.03 | ||||||
Кава "Галка" | 2,44грн. | 06.09.03 | ||||||
Кава "Галка" | 3,78грн. | 06.09.03 | ||||||
Кава Maxima | 4,80грн. | 08.09.03 | ||||||
Кава "Віденська кава" | 1,94грн. | 21.09.03 | ||||||
Чай Травневий | 4,66грн. | 6.09.03 | ||||||
Чай Dilmah | 2,95грн. | 13.09.03 | ||||||
Чай "Батік" | 1,00грн. | 06.09.03 | ||||||
Чай Dilmah Gold | 2,39грн. | 06.09.03 | ||||||
Чай Lipton | 3,57грн. | 12.09.03 | ||||||
Чай Lipton | 15,68грн | 12.09.03 | ||||||
Чай Ahmad | 3,17грн | 08.09.03 | ||||||
Чай Ahmad | 3,23грн | 08.09.03 | ||||||
Цукерки "Вечірній Київ" | 8,56грн | 20.09.03 | ||||||
Кава "Nescafe Classic" | 6,26 грн | 12.09.03 | ||||||
Чай Lipton | 15,68грн | 12.09.03 | ||||||
Цукерки "Грильяж" | 4,73грн | 08.09.03 | ||||||
Цукерки "Пташине молоко" | 3,96грн | 08.09.03 | ||||||
Цукерки "Асорті" | 8,80 грн | 10.09.03 | ||||||
Цукерки "Стріла" | 2,65 грн | 10.09.03 | ||||||
Кава "Віденська кава" | 1,94 грн | 21.09.03 | ||||||
Цукерки “Стріла” | 2,85 грн | 10.09.03 |
Таблиця 6- “Платежі”
Дата | Товари | Рахунок на суму |
10.05.03 | Напої | 3 220,00р. |
10.05.03 | Продукти | 4 300,00р. |
10.05.03 | Приправи | 1 100,00р. |
15.06.03 | Напої | 7 400,00р. |
15.06.03 | Продукти | 8 500,00р. |
15.06.03 | Приправи | 6 600,00р. |
Таблиця 7- “Студенти” містить наступні поля
№№ п/п | Ім'я поля | Тип даних |
Прізвище | Текстовий | |
Математика | Числовий | |
Економіка | Числовий | |
Фізика | Числовий | |
Компьютерна техніка | Числовий | |
Адреса | Текстовий | |
Телефон | Текстовий |
Таблиця 8-“Відділ” містить наступні поля
№№ п/п | Ім'я поля | Тип даних |
Прізвище | Текстовий | |
Стать | Текстовий | |
Посада | Текстовий | |
Освіта | Текстовий | |
Стаж роботи | Числовий |
Таблиця 9-“Відомість” містить наступні поля
№№ п/п | Ім'я поля | Тип даних |
Прізвище | Текстовий | |
Математика | Числовий | |
Економіка | Числовий | |
Фізика | Числовий |
Таблиця 10- “Заводи” містить наступні поля
№№ п/п | Ім'я поля | Тип даних |
Назва заводу | Текстовий | |
Річний обсяг | Грошовий | |
Кільк_працівників | Числовий | |
Кільк_работн_з_вищ_освітою | Числовий |
Таблиця 11- “Варіанти індивідуальних завдань”
Номери варіантів | Коди товарів у таблиці “Товари” |
1 – 11 | |
1 – 5, 11 – 15 | |
2 – 7, 17 – 20 | |
5 – 10, 17 – 20 | |
11 – 20 | |
4 – 9, 13 – 16 | |
3 – 6, 10 – 15 | |
6 – 12, 15 – 16 | |
7 – 10, 12 – 17 | |
8 – 17 | |
9 – 18 | |
3 – 9, 18 – 20 | |
4 – 8, 12 – 16 | |
5 – 14 | |
7 – 16 |
Схема складання таблиць індивідуального завдання
1. Одержіть у викладача варіант завдання.
2. Виберіть із загальної таблиці “Товари” рядки з номерами кодів товару для Вашого варіанта. Це буде таблиця “Товари” даного варіанта.
3. Таблиця “Постачальники” виходить, якщо із загальної таблиці “Постачальники” вибрати рядки з тими кодами постачальників, які є у Вашій таблиці “Товари”.
4. Таблиця “Продажі” формується шляхом вибору із загальної таблиці “Продажі” рядків з кодами товарів Вашого варіанта.
5. Таблицю “Замовлення” одержите, якщо з загальної таблиці “Замовлення” виберіть рядки з кодом замовлення Вашої таблиці “Продажі”.
6. Таблицю “Покупці” одержите із загальної таблиці “Покупці” шляхом вибору рядків з тим кодом покупця, який є у Вашій таблиці “Замовлення”.
СПИСОК ЛІТЕРАТУРИ
1. Джон Вейскас. Эффективная работа с Microsoft Access 7.0 для Windows .- С-Пб.:Питер, 1997.
2. М.Хэлворсян, М.Янг. Эффективная работа с Microsoft Office 97.- С-Пб.:Питер, 1997.
3. Visual Basic для приложений (версия 5) в подлиннике: пер. с англ.- СПб:BHV - Санкт-Петербург, 1998.
4. МакФедризг Пол и др. Microsoft Office 97. Энциклопедия пользователя: пер. с англ.-К.: Издательство "ДиаСофт", 1998.
5. К. Гетц, М. Джилберт. Программирование в Microsoft Office. Полное руководство по VBA: пер. с англ.-К.: Издательская группа BHV, 1999.
6. Киммел, Пол. Освой самостоятельно программирование для Microsoft Access 2000 за 24 часа.: пер. с англ.-М.:"Вильямс". 2000.
7.Король В.И. Visual Basic 6.0, Visual Basic for Application 6.0. Язык программирования. Справочник с примерами.-М.: КУДРИЦ-ОБРАЗ, 2000.
З М І С Т
1. Вступ………………………………………………………………….3
2. Лабораторна робота 1………………………………………………..3
3. Лабораторна робота 2………………………………………………..7
4. Лабораторна робота 3……………………………………………….12
5. Лабораторна робота 4……………………………………………….14
6. Лабораторна робота 5……………………………………………….17
7. Лабораторна робота 6……………………………………………….18
8. Лабораторна робота 7……………………………………………….20
9. Лабораторна робота 8……………………………………………….22
10. Лабораторна робота 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
11. Лабораторна робота 10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..25
12. Лабораторна робота 11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
13. Лабораторна робота 12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
14. Додаток……………………………………………………………....32
15. Список літератури…………………………………………………..39