Ох, не знаю, поможет ли тебе что-нибудь... Потому что, похоже, тут ты самый осведомленный в вопросе товарищ.
Но информацией, пожалуй, все-таки поделюсь. Вдруг, пригодится...
1) ADO и DAO. Сразу скажу, всегда использовала ADO. Поэтому и душа к нему лежит. Судя по всяким там MSDN и тд DAO лучше подстроен под Access. Ты-то ведь наверняка MS SQL Server использовать будешь. А тут обычно рекомендуют ADO. В ADO.NET даже отдельные парные классы к обычным появились - SQLConnection, SQLCommand - типа, быстрее и лучше, используя специфику именно SQL Server'a. Так что думаю, что твой выбор правильный
Вот глянь на всякий случай еще на статьи в апрельском (2001) MSDN
"Choosing Your Data Access Strategy"
http://msdn.microsoft.com/library/defau ... nology.asp
"INFO: Issues Migrating from DAO/Jet to ADO/Jet"
http://support.microsoft.com/default.as ... bContent=1
2) По поводу индексов и поиска
смотри метод Seek у рекордсета (это для твоих индексированных полей).
http://support.microsoft.com/default.as ... -US;243465
Хм... а это только для Jet...
Можно строить индекс динамически. Не знаю, сколько времени занимает...
Свойство Optimize у поля Fields(0).Properties("Optimize") = True - построит индекс
После того, как отработал Find его можно удалить
Fields(0).Properties("Optimize") = False
А еще есть вопрос: ведь если ты будешь выполнять хранимые процедуры на сервере, то ведь все твои индексы будут работать? А хранимые процедуры исполнять, используя объект Command и получать нужные рекордсеты... Это правильно, в смысле, не спасет ли это тебя?