Ответить на сообщение
Вернуться к теме
Вы отвечаете на сообщение:
ник: kot_k_k Разобрался: Взял пример Номенклатура (8000 записей) и Склад (26000 записей) Сделал 4 вида переборки Set op = dbs.OpenRecordset("select * from naimen order by kod_n") Set Skl = dbs.OpenRecordset("select * from sklad order by naimen") op.MoveLast op.MoveFirst Kol_ = op.RecordCount For i = 1 To Kol_ 1-й Skl.FindFirst ("naimen=" & op!Kod_N) Do While Skl.NoMatch = False kol_0 = kol_0 + 1 Skl.FindNext ("naimen=" & op!Kod_N) Loop 2-й If Skl.EOF = False Then Do While Skl.EOF = False Do While Skl!Naimen = op!Kod_N kol_0 = kol_0 + 1 Loop Skl.MoveNext Loop End If 3-й Set Skl = dbs.OpenRecordset("select * from sklad where naimen=" & op!Kod_N) Do While Skl.EOF = False kol_0 = kol_0 + 1 Skl.MoveNext Loop op.MoveNext Next и 4-й - использование SHAPE Получил: вар 1 - 11-12 секунд Findfist, FindNext вар 2 - 1 секунда логика проверок вар 3 - 8 секунд OpenRecordset с Where вар 4 - 1 секунда Shape Так что есть большое укорение и отсутствует головняк с логикой как во 2-м варианте. Хотя от Shape тоже требует каждый раз Set rsOrdDet = rsOrd.Fields("sklad").Value у него получается мгновенно. Я думал у Shape есть автоматический переход в подчиненной записи при перемещении на новую в Главной, но Set rsOrdDet = rsOrd.Fields("sklad").Value тоже не плохо и быстро!!!
Ваше имя:
Пароль:
Сообщение:
Прикрепить:
Для вставки смайлов в текст щелкните по значку.