Тот факт что DAO и ADO 2-е совершенно разные библиотеки доступа к данным. DAO создана специально для Access (+ c возможностью работать с другими БД через интерфейс ODBC), а ADO - новая библиотека работающая совершенно по другому принципу (OLE DB) и ориентирована на сервера (в частности MS SQL Server).
ODBC - Open DataBase Connection - общий интерфейс работы с любыми базами данных (устарел), был бы драйвер для этой БД.
При работе из Access c сервером mySQL меня интересовала произовдительность. Оказалось, что хранимый запрос к серверу выполняется почти мнгновенно (по сравнению с запросом к большей таблице Access и связанной таблицей к серверу). И подключается этот запрос через интерфес ODBC. Когда встает вопрос программно работать с табличками на сервере библиотек ADO оказывается производетельней и работает она через следующие интерфейсы: ADO -> OLE DB Provider -> ODBC -> MySQL ODBC 3.51 Driver -> mySQL сервер.
Для DAO цепочка следующая DAO -> ODBC -> MySQL ODBC 3.51 Driver -> mySQL сервер.
В Access можно использовать одновременно две библиотеки DAO и ADO, достаточно добавить на них ссылки. Только объявлять объекты нужно с использованием имен библиотек:
Код:
Dim rstDAO As DAO.Recordset
Dim rstADO As ADODB.Recordset
Два выше объвленых наборов между собой не совместимы
Код:
Set rstDAO = rstADO '-- нельзя
совсем забыл:
DAO - Data Access Objects
ADO - ActiveX Data Objects (новая библиотека по отношению к DAO)