Л а б о р а т о р н а я р а б о т а № 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