Я подозреваю, что проблема не в вашем приложении Excel как таковом. Будь то xls или xla, файл загружается в RAM на клиентском компьютере. Проблема в горилле на 800 фунтов.
Как вы, возможно, знаете, Access не является базой данных клиент-сервер, несмотря на то, что MDB может находиться на файловом сервере. Когда вы запускаете запрос (SQL или QueryDef) от клиента, все данные, необходимые в запросе, передаются клиенту. Это отличается от истинной клиент-серверной базы данных (например, SQL Server или Oracle), где запрос разрешается на сервере и только результаты возвращаются клиенту.
Некоторые предложения:
1) Запишите время до и после выполнения запроса и запишите результаты в центральный текстовый файл. Это служит только для выявления самых медленных запросов. Сначала исправь худших преступников.
2) Используя копию MDB, поэкспериментируйте с индексированием таблиц. Посмотрите, какие неуникальные поля используются в предложениях where. Уменьшите количество соединений как можно больше.
3) Если это в основном инструмент отчетности, можете ли вы денормализовать таблицы? Доступ сильно страдает из-за проблем с глубиной таблицы.
4) Можете ли вы кэшировать данные локально? В качестве одного из решений я позволил пользователям выбирать, какие данные им требуются (обычно часть целого), а затем кэшировать их на диске C :. Последующие запросы были выполнены к локальным данным.
5) Вы используете общую книгу? Избегайте этого, если это возможно.
6) Поговорите с вашими пользователями. Узнайте точно, что они находят медленными. Когда. Какие действия они предпринимали.
Всего наилучшего