Роздрукувати сторінку
Главная \ Методичні вказівки \ Методичні вказівки \ 4891 Лабораторна робота №7 на тему Робота з об'єктами DAO. Створення програм, Організація баз даних і знань, НУДПСУ

Лабораторна робота №7 на тему Робота з об'єктами DAO. Створення програм, Організація баз даних і знань, НУДПСУ

« Назад

Лабораторна робота №7 на тему Робота з об'єктами DAO. Створення програм

7.1. Короткі теоретичні відомості

Програми в Access створюються мовою програмування Visual Basic for Application. Програми дозволяють автоматизувати обробку даних, які зберігаються в таблицях. Щоб створити програми, перейдіть на вкладку Модулі й клацніть на кнопці Створити. Відкриється вікно коду, у якому можна ввести тексти процедур і функцій користувача.

Головним об'єктом у програмах Access є об'єкт Recordset, що дозволяє працювати з таблицями й запитами в програмах.

Об'єкт Recordset можна створювати після відкриття бази даних. Об'єкт Recordset являє собою запису таблиці бази даних або результуючий набір даних, що повертає в результаті запиту. Він дозволяє управляти даними в базі даних на рівні запису. На рівні полів керування даними здійснюється об'єктом Field.

Є наступні типи об'єкта Recordset:

  • Table - працює з однією таблицею бази даних. У цьому випадку дані можна індексувати, що прискорює пошук записів й їхнє сортування. При пошуку записів використають метод Seek.

  • Dynaset - дозволяє одержувати, аналізувати, видаляти й редагувати дані з декількох динамічно зв'язаних таблиць.

Об'єктна змінна типу Recordset створюється за допомогою методу OpenRecordSet. Як і для будь-який об'єктної змінної її треба спочатку оголосити, а тільки потім установити посилання на об'єкт, що повертає методом OpenRecordSet. Синтаксис:

Dim Запис as RecordSet

Set Запис=CurrentDb.OpenRecordSet (Ім'я, Тип, Парам, Блокування)

Аргументи:

- Ім'я - ім'я таблиці або запиту;

- Запис - об'єктна змінна, що представляє відкриває объект, Що, Recordset;

- Тип - константа, що вказує тип об'єкта, що відкриває, Recordset. Припустимі значення: dbOpenTable, dbOpenDynaset;

- Блокування - установлює тип блокування даних. Припустиме значення: dbReadOnly, якщо таблиця або запит відкриваються тільки для читання.

Методи об'єкта Recordset

  • AddNew – створює й додає новий запис. Після внесення змін у новий запис варто викликати метод Update для збереження змін і додавання запису в об'єкт Recordset. До виклику методу Update зміни в базу даних не заносяться.

  • Clone – створює копію об'єкта Recordset.

  • Close – закриває відкритий об'єкт доступу до даних.

  • Delete – видаляє поточний запис в обновлюваному об'єкті Recordset.

  • Edit – копіює поточний запис із обновлюваного об'єкта Recordset у буфер для наступної зміни. Після внесення змін у новий запис варто викликати метод Update для збереження змін і додавання запису в об'єкт Recordset. До виклику методу Update зміни в базу даних не заносяться

  • MoveFirst, MoveLast, MoveNext, MovePrevious – робить поточний перший, останній, наступний і попередній запис об'єкта Recordset відповідно.

Наприклад, використовуючи методи руху по записах й оператори циклу, обчислимо загальну кількість книг у таблиці «Книги» і кількість книг, виданих після 2000 року.

Sub Кількість()

Dim rstBooks As Recordset, k As Integer, k2000 As Integer

Set rstBooks = CurrentDb.OpenRecordset("Книги", dbOpenDynaset)

k=0

k2000=0

rstBooks.MoveFirst

Do Until rstBooks.EOF                 ' цикл по записах таблиці

k=k+1

If rstBooks![Рік] > 2000 Then k2000 = k2000 + 1

rstBooks.MoveNext               ' перехід до наступного запису

Loop                                              ‘ закінчення циклу

Msgbox “Усього книг - ” & k & “ з них після 2000 року - “ & k2000

End Sub

  • FindFirst, FindLast, FindNext, FindPrevious – знаходить перший, останній, наступний або попередній запис відповідно, що задовольняє заданим умовам, і робить цей запис поточної. Наприклад, знайдемо в таблиці «Книги» книгу автора Гарнаев А.

Sub Пошук()

Dim rstBooks As Recordset

Set rstBooks = CurrentDb.OpenRecordset("Книги", dbOpenDynaset)

rstBooks.FindFirst "[Автор]='Гарнаев А.'"

If rstBooks.NoMatch = False Then

MsgBox "Назва книги : " & rstBooks![Назва]

Else

MsgBox "Книг такого автора в бібліотеці ні"

End If

End Sub

  • Update – зберігає вставки й зміни, зроблені в об'єкті Recordset за допомогою методів AddNew й Edit.

Властивості об'єкта Recordset

  • BOF – повертає True, якщо покажчик поточного запису розташований перед першим записом набору записів, і значення False, якщо покажчик поточного запису розташований на першому записі набору або на будь-якому записі після її.

  • EOF - повертає True, якщо покажчик поточного запису розташований після останнього запису набору, і значення False, якщо покажчик поточного запису розташований на останньому записі набору або на будь-якому записі перед нею.

  • Bookmark – установлює або повертає закладку, що однозначно визначає поточний запис в об'єкті Recordset. Звичайно використається для повернення в об'єкт Recordset на певне місце, без вказівки певної адреси запису.

  • NoMatch – повертають значения, що : True, якщо потрібний запис не знайдений, і False у противному випадку.

  • RecordCount – повертає число записів, до яких був здійснений доступ в об'єкті Recordset. Властивість не показує скільки записів утримується в об'єкті Recordset до обігу до всіх записів. Після звертання до останнього запису набору значення властивості стає рівним повному числу не вилучених записів в об'єкті Recordset.

  • Filter – задає або повертає значення фільтра. При вказівці критерію фільтрації назви полів полягають у квадратні дужки. Приклад використання властивості:

Sub Фільтр()

Dim зап As Recordset, колзап As Integer

Set зап = CurrentDb.OpenRecordset("Читачі", dbOpenDynaset)

зап.MoveLast

колзап = зап.RecordCount

MsgBox "Усього читачів у бібліотеці - " & Str(колзап)

зап.Filter = "[Кафедра]='ВМ'"

Set зап = зап.OpenRecordset()

If зап.RecordCount > 0 Then

зап.MoveLast

колзап = зап.RecordCount

MsgBox "Читачів з кафедри ВМ - " & Str(колзап)

Else

MsgBox "Немає читачів кафедри ВМ"

End If

End Sub 

  • Sort – задає або повертає порядок сортування записів в об'єкті Recordset.

7.2. Завдання

Написати програми, які відкривають необхідні таблиці як набори записів і виконують наступні дії:

1) додає новий запис і заповнює її даними;

2) відшукує потрібний запис і змінює дані в ній;

3) установлює фільтр й обчислює, скільки записів задовольняє умовам фільтра;

4) у циклі переглядає всі записи якої-небудь однієї таблиці й підраховує кількість записів, які задовольняють умові;

5) виберіть дві таблиці, зв'язані відношенням 1:( , для кожного запису з таблиці з боку 1 обчислите кількість пов'язаних з нею записів з таблиці з боку (. Виведіть обчислені значення у вікно діалогу.

Оформите звіт по лабораторній роботі. Напишіть відповіді на контрольні питання.

7.3. Контрольні питання

1) Створення об'єкта Recordset, типи об'єкта. Метод OpenRecordset і його параметри.

2) Методи об'єкта Recordset й їхнє призначення.

3) Властивості об'єкта Recordset, їхнє використання.

4) Оператори циклу і їхнє використання при роботі з наборами записів.

З повагою ІЦ "KURSOVIKS"!