DBEngine є об'єктом найвищого рівня в ієрархії DAO і використовується для представлення самого ядра Jet бази даних. DBEngine містить сімейство WorkSpaces (WorkSpace - сеанс або робочий простір) і метод CreateWorkspace створення робочого простору, а також метод CompactDatabase для ущільнення бази даних.
В ядрі бази даних Jet об'єкт WorkSpaсe використовується в основному для забезпечення захисту. Система захисту встановлюється за допомогою створення робочої групи, яка управляється спеціальним системним файлом. За допомогою методів WorkSpace можна створювати об'єкти User (користувач) і Group (група) для користувачів і груп з різними повноваженнями, визначеними в поточній робочій групі. Методом CreateDatabase можна створити базу даних, а OpenDatabase - відкрити існуючу. У робочому просторі можна використовувати транзакції.
Часто для забезпечення цілісності даних потрібно розглядати певний набір операцій як одну нерозривну групу. Наприклад, переказ грошей з одного банківського рахунку на інший складається з двох операцій: видалення грошей з одного рахунку і додавання такої ж суми грошей на інший рахунок. На практиці, однак, або обидві операції повинні завершитися успішно, або жодна з них не повинна бути виконана.
У даній ситуації обидві операції об'єднуються в одну групу, звану транзакцією. У MS Access транзакція визначається як набір операцій, результат яких підтверджується (зберігається) в тому і тільки в тому випадку, якщо всі операції набору пройшли успішно. Якщо будь-яка з операцій транзакції не виконано, то всі виконані раніше операції скасовуються, і дані повертаються до того стану, який вони мали до початку виконання транзакції. Щоб почати транзакцію, треба виконати метод сеансу BeginTrans. Транзакції групують пов'язані за змістом операції таким чином, що внесені зміни зберігаються в буфері пам'яті до виклику одного з методів CommitTrans (завершення транзакції) або RollBack (відкат).
Об'єкт Database представляє відкриту базу даних, в якій можна виконувати різноманітні операції. База даних може бути не тільки файлом .mdb програми Access, а й базою даних, створеної низкою інших програм. Більшість операцій DAO проводиться через об'єкт Database або підлеглі йому об'єкти (сімейства Containers, QueryDefs. RecordSets. Relations, TableDefs). За допомогою методів можна створити властивість (CreateProperty), запит (CreateQueryDef), відношення між таблицями (CreateRelation), опис таблиці (CreateTableDef). Метод Execute дозволяє виконати існуючий запит, а OpenRecordSet - відкрити існуючий набір даних.
Об'єкт QueryDef є постійним об'єктом, який використовується для зберігання операторів запиту в файлі БД. До методів належать CreateProperty (створити властивість), OpenRecordSet (відкриття набору даних, що породжується запитом), Execute (виконати запит). Для запитів можна створювати параметри (сімейство Parameters).
Для посилання на таблиці всередині об'єкта Database. тобто на локальні таблиці, збережені в mdb-файлі, або на пов'язані таблиці в зовнішніх базах даних використовуються об'єкти TableDef. Об'єкт TableDef використовується для зміни структури таблиць в базі даних, а не для читання або зміни даних всередині таблиць. Для читання і зміни даних використовується об'єкт RecordSet. За допомогою об'єкта TableDef можна створювати об'єкти Field і Index. оновлювати зв'язку з таблицями із зовнішніх баз даних, встановлювати обмеження на значення для додаються в таблицю полів, визначати кількість записів в таблиці.
TableDef містить сімейства Fields і Indexes. а також методи CreateField (створити поле), CreateIndex (створити індекс), CreateProperty (створити властивість), OpenRecordset (відкрити набір даних).
Для звернення до полів об'єктів TableDef. QueryDef. Index. Relation і Recordset використовується об'єкт Field. В об'єктах TableDef. Index і Relation об'єкт Field застосовується для установки або зміни структури таблиць, а також для установки індексів і залежностей. В об'єкті RecordSet об'єкт Field використовується для вибірки і відновлення окремих полів запису в наборі даних.
Об'єкт Index використовується для вказівки порядку записів в об'єктах TableDef і того, чи можуть вводитися повторювані записи. DAO використовує Index при з'єднанні таблиць в момент створення об'єктів RecordSet з декількох таблиць. Слід зазначити, що Index впливає на сортування записів тільки в об'єктах RecordSet табличного типу. При цьому він не впливає на реальне впорядкування записів в об'єкті TableDef. Записи в об'єкті TableDef упорядковуються відповідно до послідовності їх додавання в об'єкт.
За допомогою об'єкта RecordSet можна витягувати, додавати, змінювати і видаляти окремі записи з однієї таблиці або пов'язані записи з декількох таблиць. Набір записів може ставитися до типу Table (таблиця), Dynaset (динамічний набір) або SnapShot (статичний набір).
Табличні набори використовуються для доступу до записів в таблиці, що зберігається в mdb-файлі. За допомогою табличних наборів можна витягувати, додавати, оновлювати і видаляти записи в окремій таблиці.
Динамічні набори застосовуються для доступу до записів в таблиці, що зберігається в mdb-файлі або пов'язаної з ним. Динамічні набори використовуються також для доступу до записів, які є результатом виконання запиту. За допомогою цих наборів можна витягувати, додавати, оновлювати і видаляти записи, як в окремій таблиці, так і в декількох відповідно до визначення запиту.
Об'єкт RecordSet володіє сімейством Fields, яке забезпечує доступ до окремих полів запису, і безліччю методів, які дозволяють створювати нові записи (AddNew), знищувати існуючі (Delete), оновлювати (Edit, Update), створювати копії набору (Clone), шукати запис ( Seek, FindFirst, FindLast, FindNext, FindPrevious), переміщатися по записах (Move, MoveFirst, MoveLast, MoveNext, MovePrevious). Об'єкт RecordSet створюється методом OpenRecordSet, а закривається методом Close. Метод ReQuery оновлює набір.
Відзначимо найбільш поширені властивості об'єкта RecordSet.
BOF. Покажчик записи знаходиться перед першим записом або набір порожній. Якщо в цій ситуації застосувати метод FindPrevious або MovePrevious, виникає помилка.
EOF. Покажчик записи знаходиться після останнього запису набору. Спроба застосувати метод MoveNext або FindNext призводить до помилки.
BookMark. Закладка, що є рядком тексту. Вона однозначно ідентифікує поточну запис. Значення закладки можна запам'ятати в текстовій змінної і згодом привласнити властивості BookMark форми. У формі поточної знову стає зазначена раніше запис.
Filter. Задає або повертає строкове вираження, яке використовується для відбору записів об'єкта RecordSet динамічного або статичного типу. При завданні фільтра використовується пропозицію WHERE мови SQL без ключового слова WHERE. Назви полів об'єкта RecordSet полягають в квадратні дужки. Для того щоб фільтр заробив, потрібно відкрити новий об'єкт RecordSet на основі того об'єкта, для якого встановлено фільтр.
Index. Задає ім'я індексу для об'єкта RecordSet табличного типу. Це дозволяє використовувати в об'єкті RecordSet метод Seek для відшукання записів, що задовольняють заданому критерію.
LastModified. Повертає ятати останнього запису, модифікованої в об'єкті RecordSet.
Name. Ім'я джерела (єдиного) для об'єкта RecordSet, тобто ім'я таблиці, об'єкта QueryDef або перші 256 символів рядка інструкції SQL, яка формує об'єкт. Встановлюється методом OpenRecordSet і після цього стає доступним тільки для читання.
NoMatch. Якщо ця властивість має значення True, то це означає, що операція Find або Seek не змогла знайти запис, що задовольняє заданому критерію.
RecordCount. Для табличних наборів повертає загальне число записів. Для статичних і динамічних наборів записів RecordCount повертає число записів, до яких здійснювалося звернення. Щоб отримати повне число записів, потрібно спочатку викликати метод MoveLast для переміщення покажчика поточного запису в кінець набору, а потім використовувати RecordCount.
Sort. Встановлює або повертає порядок сортування записів. Для сортування потрібно використовувати рядок, що представляє пропозицію Order BY мови SQL без ключових слів Order By. При цьому назви полів слід укласти в квадратні дужки. Порядок сортування можна визначити на основі одного або декількох полів. Для того щоб після установки порядку сортування сортування здійснилася, потрібно відкрити новий об'єкт RecordSet на основі того об'єкта, для якого вона встановлена.
Type. Тип об'єкта RecordSet (Db_Open_Table, Db_Open_Dynaset, Db_Open_Snapshot). Це властивість инициализируется при виклику методу OpenRecordSet і використовується тільки для читання.