ник: Lukas
Нар.итог: (SELECT Sum(T.Сумма) FROM Таблица1 As T WHERE (Таблица1.Компания=T.[Компания]) And (T.[Дата]<=Таблица.[Дата]) )
Это рекурсия и для выполнения запроса производится N^2 итераций.
|
Вот здесь вы ошибаетесь ИМХО.
Никакой рекурсии я тут не наблюдаю.
Для каждой записи Таблица1 будет выполнен ОДИН суммирующий запрос.
Выполнение этих суммирующих запросов при посредничестве VBA только затормозит расчет.
Наличие индексов по полям Таблица1.Компания и Таблица.[Дата] могут ускорить первоначальный запрос.
Надеюсь поле Таблица1.Компания имеет тип Long и содержит внешний ключ на справочную таблицу компаний?
Если нет, и это поле типа Text, то это и есть "главный тормоз".