DAO (Data Access Objects) – об’єкти доступу до даних використовуються для керування базами даних з усіх додатків, які підтримують VBA. Для цього в редакторі VBA в меню Tools – References треба підключити бібліотеку об’єктів Microsoft DAO 3.6 Object Library.
Для роботи з базою даних можна описувати змінні як об’єкти доступу до даних Database, Recordset, Querydef та ін. Як і для будь-якої об'єктної змінної її треба спочатку оголосити, а тільки потім встановити посилання на об'єкт за допомогою оператора Set. Наприклад, така послідовність команд описує об’єктні змінні dbMyDB та rsRec, а метод OpenRecordsetстворює в активній базі даних об’єкт Recordset – динамічний набір записів на основі даних таблиці tvidom.
Dim dbMyDB As Database , rsRec As Recordset
Set dbMyDB = CurrentDb
Set rsRec = dbMyDB .OpenRecordset ( "tvidom", dbOpenDynaset)
Розглянемо деякі властивості та методи об'єкта Recordset.
Ø Update –зберігає зміни, зроблені в об'єкті Recordset за допомогою методів AddNew та Edit.
Ø Edit –копіює до буферу поточний запис об'єкта Recordset та робить можливим його змінення. Після завершення змін треба викликати метод Update для збереження запису в об'єкті Recordset. Якщо метод Update не викликати, то внесені зміни будуть скасовані без попередження і до бази даних не запишуться.
Ø AddNew –створює і добавляє новий запис. Можна записати до нього якісь дані, проте поточний запис не зміниться. Щоб перейти на новий запис, можна використати властивість Bookmark, а саме надати їй значення LastModified.
В динамічному наборі записів новий запис завжди добавляється в кінець набору, тому перейти на нього можна і за допомогою методу MoveLast, і за допомогою закладки Bookmark. В об’єкті Recordset типа таблиці з активним індексом місце нового запису визначається порядком сортування.
Ø Bookmark – визначає закладку, яка запам’ятовує номер поточного запису в об'єкті Recordset, а потім використовується для повернення в об'єкті Recordset на той самий запис.
Ø MoveFirst, MovePrevious, MoveNext, MoveLast –методироблять поточним перший, попередній, наступний або останній записи об'єкта Recordset відповідно.
Задача 7.1. Створити процедуру, яка добавляє новий відділ до таблиці tvidom.