> Как можно попросить из макроса на VB в Excel'е запустить Access,
> открыть уже существующую базу данных, выполнить запрос и вернуть
> результаты запроса в Excel.

тебе скажут - DDE, OLE Automation. Я спрошу - зачем? Это такие же неудобные
способы взаимодействовать, как и любые другие, но вдобавок они еще громоздки,
тормозны и ненадежны.

Я только что успешно применил на практике вариант, когда управляющая информация
передается через ini-файл, а данные - через временные файлы. Ini features:

- единый basic-модуль работы с ini для Excel и Access
- работа через WinAPI
- простой интерфейс (2..4 функции)
- удобная отладка (ini и tmp остаются и их можно посмотреть)
- сравнительно высокая скорость, т.к. винда кеширует ini

Модуль прилагается (Приложение 2). Вызовы DLL 16-битные, т.е. рассчитаны на
Access2/Excel5. Если ты используешь более поздние версии, надо будет поправить
пару байт (это просто, сам поймешь как).

Применяется технология так:

- excel порождает ini-файл, описывающий задачу (см. Приложение 1)
- ...и запускает Access с командной строкой /Cmd <имя_ini_файла>
- ...а сам в цикле с DoEvents опрашивает ключ ExitCode того же файла
- Access извлекает из ini все что нужно, забирает входной файл, порождает
выходной и прописывает ExitCode=OK, ExitMessage=сообщение
- excel обнаруживает ExitCode и забирает файл (или говорит, что произошла
ошибка, если ExitCode=ERROR)

Открыв для себя увлекательный мир ini-файлов, ты порадуешься, насколько удобно
засовывать в них настройки xl-варезов, которые раньше болтались по
вспомогательным таблицам.

21 Apr 97                                           Yours sincerely, Emil.

>< Приложение 1, пример управляющего ini

[PTS 1.0]
Command=wash
accessdebug=False
InFile=E:\ACCESS\PTS\TEMP\77775191.908
OutFile=E:\ACCESS\PTS\TEMP\35185197.985
ExitCode=OK
ExitMessage=WMain

>< Приложение 2, ini API имени меня