1. Действительно задача сложная, но вполне разрешимая. Если работаем с mdb проектом, то нужно составить перекрестный запрос. В adp этого нет. Разработчики SQL server "забыли" создать такую процедуру. Хотя в интернете можно найти массу примеров, как составить cross- процедуру.
2. Нужно каким-то образом объединить несколько полей в одно поле. Это лучше сделать через массив значений. Создаете двумерный массив и пишите в него данные из recordset. Можно использовать и свою функцию в mdb проекте.
3. Далее все это передаете в Excel. Примеры передачи recordset и массива значений.
http://help.leadersoft.ru/tabid/74/forumid/1/threadid/8105/scope/posts/Default.aspx http://help.leadersoft.ru/tabid/74/forumid/1/threadid/8106/scope/posts/Default.aspx