Выбор подходящего метода доступа к данным основывается на анализе задач, стоящих перед разработчиком:
В приложениях Excel, используемых для просмотра или анализа данных, не требующих их обновления, нужно использовать сводные таблицы, которые позволяют организовать доступ к внешним источникам данных.
В приложениях, требующих как импорта, так и экспорта данных, следует использовать DAO.
Так как поток данных в сводную таблицу однонаправлен, то для создания приложения, дающего возможность пользователю изменять данные в сводной таблице, необходимо разработать специальный интерфейс четырехэтапного процесса управления потоком данных:
С помощью ODBC данные передаются в сводную таблицу для просмотра и анализа.
Если необходимо изменить данные в сводной таблице, их следует скопировать в диапазон на рабочем листе и там модифицировать.
После внесения изменений данные экспортируются во внешнюю базу данных с использованием технологии DAO.
Сводная таблица обновляется с помощью метода Refreshобъекта PivotTable.
Пример, демонстрирующий возможности управления потоками данных показан в Приложении А.
DAO предоставляет возможность доступа к данным как через ядро базы данных Jet, так и прямо через ODBC.
Ядро Jet является собственной внутренней системой программы Access, распространяемой вместе с Visual Basic и Office 97. Ядро БД Jet позволяет осуществлять доступ как к локальным источникам информации (БД Access), так и к согласованным с ODBC источникам данных, таким как SQL Server или Oracle. Jet обладает следующими особенностями:
в одном запросе можно комбинировать данные из источников различных типов (например: данные из локальных таблиц Access и таблицы DB2, находящейся на сервере);
обеспечивается объектная модель изменения структуры БД, т.е. таблиц, индексов, полей и связей, средств защиты БД для пользователей и групп.
Эти возможности увеличивают наклалные расходы особенно при доступе к серверным источникам данных (SQL Server, Sybase, Oracle). Это обусловлено, в частности, самим процессом выполнения запроса: для связи с серверными БД используется ODBC, следовательно, операции проходят два уровня (Jet и ODBC). Поэтому при обращениях к серверным источникам данных предпочтительным вариантом является использование доступа через ODBCDirect, который не взаимодействует с Jet, а обращается прямо к ODBC.
Учитывая сказанное выше, можно сделать следующие выводы:
для доступа к БД «настольных» СУБД типа Access, Dbase, Paradox или FoxPro следует использовать объекты доступа к данным DAO Jet;
для управления структурой БД нужно использовать DAO Jet;
для комбинирования данных из двух или более источников различного типа используется DAO Jet;
для доступа к БД серверного типа используются объекты доступа к данным ODBCDirect.
Более полную информацию можно получить в справочной системе.