Лабораторна робота №7 на тему Робота з об'єктами DAO. Створення програм, Організація баз даних і знань, НУДПСУ
« НазадЛабораторна робота №7 на тему Робота з об'єктами DAO. Створення програм7.1. Короткі теоретичні відомості Програми в Access створюються мовою програмування Visual Basic for Application. Програми дозволяють автоматизувати обробку даних, які зберігаються в таблицях. Щоб створити програми, перейдіть на вкладку Модулі й клацніть на кнопці Створити. Відкриється вікно коду, у якому можна ввести тексти процедур і функцій користувача. Головним об'єктом у програмах Access є об'єкт Recordset, що дозволяє працювати з таблицями й запитами в програмах. Об'єкт Recordset можна створювати після відкриття бази даних. Об'єкт Recordset являє собою запису таблиці бази даних або результуючий набір даних, що повертає в результаті запиту. Він дозволяє управляти даними в базі даних на рівні запису. На рівні полів керування даними здійснюється об'єктом Field. Є наступні типи об'єкта Recordset:
Об'єктна змінна типу Recordset створюється за допомогою методу OpenRecordSet. Як і для будь-який об'єктної змінної її треба спочатку оголосити, а тільки потім установити посилання на об'єкт, що повертає методом OpenRecordSet. Синтаксис: Dim Запис as RecordSet Set Запис=CurrentDb.OpenRecordSet (Ім'я, Тип, Парам, Блокування) Аргументи: - Ім'я - ім'я таблиці або запиту; - Запис - об'єктна змінна, що представляє відкриває объект, Що, Recordset; - Тип - константа, що вказує тип об'єкта, що відкриває, Recordset. Припустимі значення: dbOpenTable, dbOpenDynaset; - Блокування - установлює тип блокування даних. Припустиме значення: dbReadOnly, якщо таблиця або запит відкриваються тільки для читання. Методи об'єкта 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
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
Властивості об'єкта Recordset
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
7.2. Завдання Написати програми, які відкривають необхідні таблиці як набори записів і виконують наступні дії: 1) додає новий запис і заповнює її даними; 2) відшукує потрібний запис і змінює дані в ній; 3) установлює фільтр й обчислює, скільки записів задовольняє умовам фільтра; 4) у циклі переглядає всі записи якої-небудь однієї таблиці й підраховує кількість записів, які задовольняють умові; 5) виберіть дві таблиці, зв'язані відношенням 1:( , для кожного запису з таблиці з боку 1 обчислите кількість пов'язаних з нею записів з таблиці з боку (. Виведіть обчислені значення у вікно діалогу. Оформите звіт по лабораторній роботі. Напишіть відповіді на контрольні питання. 7.3. Контрольні питання 1) Створення об'єкта Recordset, типи об'єкта. Метод OpenRecordset і його параметри. 2) Методи об'єкта Recordset й їхнє призначення. 3) Властивості об'єкта Recordset, їхнє використання. 4) Оператори циклу і їхнє використання при роботі з наборами записів. З повагою ІЦ "KURSOVIKS"! |