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

 

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

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

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

ник: час
Посоветуйте по отимизации кода...


Я сравниваю (rstOsnovna DAO.Recordset) и (rstHelnok DAO.Recordset) , одноимённые поля проверяю на разность содержащихся в них данных.Так как эти таблицы из разных офисов в них наверняка есть разница .

If Nz(rstOsnovna!NOMER) <> Nz(rstHelnok![NOMER]) Then raznicaECTb = 1
If Nz(rstOsnovna!NAME) <> Nz(rstHelnok![NAME]) Then raznicaECTb = 1
If Nz(rstOsnovna!NDATE) <> Nz(rstHelnok![NDATE]) Then raznicaECTb = 1
и т.д. ......................
всё бы не плохо но говорят ( If ) очень медленно работает и если два десятка полей, тысячи записей, то сравнение пройдёт долго.
потому я решил попробовать иначе...

Set Helndb = wsp.OpenDatabase(put_k_baze"Helnok.mdb")
Set rstOsnovna = CurrentDB.OpenRecordset("dog" , dbOpenDynaset)
Set rstHelnok = Helndb.OpenRecordset("dog1", dbOpenDynaset)

dim name_field as string
dim raznicaECTb as integer

raznicaECTb =0
Do Until rstHelnok.EOF = True

‘, но вот это место я незнаю как записать
‘надо как-то пробежаться по названию полей
‘сравнить их содержимое на наличие разницы

name_field =rstHelnok.name
If Nz(rstOsnovna!(name_field)) <> Nz(rstHelnok!(name_field) Then raznicaECTb = 1


Loop
if raznicaECTb = 1 then‘ и если хотя бы одно поле не совпадает по содержимому, то принять меры…


else

end if

Но может у кого-то есть другое , уже испытанное решение…


Ваше имя:

Пароль:

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

Сообщение:

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

Прикрепить:

 

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