Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

End Sub

Примітка. Для закриття активного об'єкта досить у програмі написати:

DoCmd.Close

Фільтрація даних у формі

Для фільтрації даних форми використовується макрокоманда ApplyFilter. Cтруктура методу DoCmd при цьому така:

DoCmd. ApplyFilter “ Ім'я фільтра”,”Умова відбору”

Ім'я фільтра ім'я запиту;

Умова відбору – вираз SQL без Where.

Приклад 4. У формі “ Відділ кадрів ” (рис. 3.22) процедура Sub для фільтрації даних по Дата_зачисл така:

Sub Фільтрація_по_даті()

DoCmd.ApplyFilter "", "[Дата_зачисл]>[Введіть дату]"

End Sub

При запуску програми у вікні діалогу виводиться запрошення на уведення дати.

Рис.3.22 - Форма “Відділ кадрів”

 

3.18. Робота з об'єктами доступу до даних

Щоб працювати з даними в базі даних, потрібно спочатку виконати з'єднання із цією базою даних, тобто одержати на неї посилання. У моделі DAO це буде Database, а в моделі ADO – Connection. Коли посилання отримане, можна звертатися до сімейств і об'єктів цієї бази даних. Приклади з'єднання дані вище в розділі “Модели объектов доступа к данным DAO і ADO”.

Типи даних об'єктів визначаються посиланнями на об'єкти відповідних моделей, що зберігаються в бібліотеках. Найпоширенішими об'єктними типами, підтримувані Access VBA, є:

- об'єктні типи даних Access з бібліотеки Access 10.0 – Form, Report, Control – відповідно присвоюються об'єктам, формам, звітам і їхнім елементам керування;

- об'єктні типи даних DAO – Database, TableDef, Field, DAO.Recordset, QueryDef. Тип даних Database присвоюється об'єкту База данных, QueryDef запити (вираз SQL), TableDef таблиці, Dao.Recordset набору записів у таблиці;

- об'єктні типи даних ADO – Connection заміняє тип даних Database в DAO, Сommand - QueryDef, ADODB - DAO.Recordset.

 

Розглянемо приклади опису об'єктних змінних:

Dim FF As Form, Fam As Control, Bd As Database

Присвоювання значення об'єктній змінній

Оператор Dim тільки описує змінну. Для того, щоб змінна містила посилання на об'єкт, необхідно за допомогою оператора Set присвоїти цієї змінній посилання на об'єкт відповідного типу. Тип об'єктної змінної повинен відповідати об'єкту, їй присвоєному. Наприклад:

1) Set FF = Forms![Список студентов ] - створює змінну FF для форми Список студентов;

2 ) Set Fam = Forms![Список студентов]!ФИО - створює змінну Fam в елементі керування форми Список студентов;

3) Set Bd = CurrentDB() присвоює змінній Bd значення поточної бази даних;

4) Set Rs = db.OpenRecordset("Продажи") - присвоює змінній Rs значення запису таблиці Продажи поточної бази даних;

5) Set Tabl = Bd.CreateTableDef(“Сотрудники ”) – створює в поточній Bd таблицю з іменем Сотрудники й зберігає посилання на цей об'єкт у змінної Tabl;

6) Set Fld = Tabl.CreateField(“ФИО”, dbText)– створює поле й присвоює посилання на нього об'єктній змінній Fld.

7) Set ім'я об'єктної змінної = New створюється новий екземпляр об'єкта.

Після опису об'єктної змінної й присвоєння їй значення ця змінна може бути використана замість прямих посилань на об'єкти й дані. Застосування об'єктних змінних дозволяє спростити текст програми.

Набори записів у таблицях

Після з'єднання з базою даних і відкриття таблиці створюється новий набір записів, і тепер основна робота, проводиться з об'єктом Recordset.

Існує три типи наборів записів:

- табличний тип - визначає основну таблицю або підключену таблицю відкритої бази даних. Дії можуть бути здійснені тільки з набором записів табличного типу;

- динамічний тип - визначає динамічну, віртуальну таблицю, що є результатом роботи запиту. Динамічні набори записів включають поля з різних таблиць. Вони називаються динамічними, тому що є можливість відновлення записів шляхом додавання, редагування й видалення;

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

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

BOF -повертає значення True, якщо позиція поточного запису перебуває перед першим записом.

Bookmark - установлює або повертає значення Variant, що ідентифікує поточний запис.

EOF -повертає значення True, якщо позиція поточного запису перебуває нижче останнього запису.

Filter - повертає або установлює критерій визначення запису, що включається в набір записів.

RecordCount – повертає кількість записів у наборі.

Fields.Count – повертає кількість полів у таблиці.

Fields(i).Name повертає ім'я i-го поля в таблиці.

Sort - повертає або установлює порядок сортування в наборі записів динамічного й простого типів.

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

AddNew -додає новий запис у набір табличних або динамічних записів.

Close - закриває набір даних.

Delete - видаляє поточний запис із набору табличних або динамічних записів.

Update - обновляє набір записів.

Edit - копіює поточний запис набору табличних або динамічних записів у буфер копіювання для подальшого редагування (тільки в DAO).

Move - переміщає покажчик поточного запису на певну кількість записів. Цей метод має наступний синтаксис:

Об'єкт.Move рядок

Об'єкт - об'єкт типу Recordset.

Рядок - змінна типу long integer, що визначає кількість записів, на які слід перемістити положення курсору. Для руху по набору записів у зворотному порядку використовується негативне значення параметра рядок.

MoveFirst, MoveLast, MoveNext, MovePrevious -переміщає поточний запис у першу, останню, наступну або попередню позицію поточного набору записів.

Робота з набором записів таблиці.

Перед написанням програм потрібно відкрити вікно текстового редактора VBA командами Модули ® Создать. У модулі зробити посилання на бібліотеки доступу до даних DAO і ADO. Для цього виконати команди Tools ® References і вибрати бібліотеки об'єктів так, як це показано на рис. 3.23.

 

Рис.3.23 - Вікно посилань для підключення бібліотек.

 

Приклад 1. Нехай є форма " Товары ", створена на основі однойменної таблиці в поточній базі даних. Необхідно підрахувати cумарну вартість кави. Для цього у формі створюється елемент керування з ім'ям Стоимость_кофе й кнопка Расчет стоимости (рис.3.24), під якою потрібно написати програму.

Private Sub Кнопка17_Click()

<== предыдущая лекция | следующая лекция ==>
End Function. Приклад 2. Є форма “Выбор студента” з полем зі списком, де дані міста (рис.3.20) | End Sub. Dim rs As DAO.Recordset
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 306; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.02 сек.