Форумы HiProg.com - MS ACCESS, VBA, VB

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

ник: Lukas


Нар.итог: (SELECT Sum(T.Сумма) FROM Таблица1 As T WHERE (Таблица1.Компания=T.[Компания]) And (T.[Дата]<=Таблица.[Дата]) )
Это рекурсия и для выполнения запроса производится N^2 итераций.


Вот здесь вы ошибаетесь ИМХО.
Никакой рекурсии я тут не наблюдаю.
Для каждой записи Таблица1 будет выполнен ОДИН суммирующий запрос.

Выполнение этих суммирующих запросов при посредничестве VBA только затормозит расчет.

Наличие индексов по полям Таблица1.Компания и Таблица.[Дата] могут ускорить первоначальный запрос.

Надеюсь поле Таблица1.Компания имеет тип Long и содержит внешний ключ на справочную таблицу компаний?
Если нет, и это поле типа Text, то это и есть "главный тормоз".


Ваше имя:

Пароль:

Цитировать: [quote][/quote] Код: [code][/code]
Жирный: [b][/b] Наклонный: [i][/i]
URL: [url][/url] 

Сообщение:

 Размер файла не более 50 Кбт. Большие файлы можно размещать на www.slil.ru

Прикрепить:

 

Для вставки смайлов в текст щелкните по значку.