функция подстановки в Excel

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Teslenko_EA
Сообщения: 526
Зарегистрирован: 04 фев 2007, 18:37
Откуда: Сургут
Контактная информация:

Здравствуйте mokintoh.

Вариант два запроса - "панацея", как писал Naeel Maqsudov, т.е. - SQL без применения Recordset'а.
Евгений.
Вложения
PrimerSQL.zip
(18.92 КБ) 26 скачиваний
mokintoh
Сообщения: 8
Зарегистрирован: 17 мар 2009, 21:08

Согласен - работает действительно быстрей :) А как быть если уже в своем листе MAIN разбил FIO на три столбца?
Пришлось и второй лист разбить, потом переделать так:
Const sqlUp$ = "UPDATE [MAIN$A1:K50] as d, [qqq$D1:N50] as s " + _
"SET d.W = s.W, d.B = s.B, d.STR = s.STR, d.RNUM = s.RNUM, d.KAT = s.KAT, d.GROUP = s.GROUP, d.PR = s.PR " + _
"WHERE d.F=s.F AND d.I=s.I AND d.O=s.O AND d.ROGD=s.ROGD;"
'текст запроса добавляющего "новые" записи
Const sqlAdd$ = "INSERT INTO [MAIN$A1:K50] ( F, I, O, ROGD, W, B, STR, RNUM, KAT, [GROUP], PR ) " + _
"SELECT s.F, s.I, s.O, s.ROGD, s.W, s.B, s.STR, s.RNUM, s.KAT, s.GROUP, s.PR " + _
"FROM [qqq$D1:N50] AS s LEFT JOIN [MAIN$A1:K50] AS d ON (s.ROGD = d.ROGD) AND (s.F = d.F) AND (s.I = d.I) AND (s.O = d.O) " + _
"WHERE (d.F) Is Null;"
в принципе тоже работает :)
Вложения
PrimerSQL.zip
(16.65 КБ) 30 скачиваний
Teslenko_EA
Сообщения: 526
Зарегистрирован: 04 фев 2007, 18:37
Откуда: Сургут
Контактная информация:

Здравствуйте mokintoh.
"Огроменное спасибо..." в предыдущем сообщении мне понравилось гораздо больше чем сухое -"Согласен ...".
Я рад, что Ваша задача нашла свое решение.
Евгений.
mokintoh
Сообщения: 8
Зарегистрирован: 17 мар 2009, 21:08

Евгений в любом случае Вам спасибо ОГРОМЕННОЕ, без всяких обид)) я просто в этом деле полный профан и по достоинству оценить всей разницы практически не могу. Вот если бы у меня появилась универсальная какая то формула, которая бы запросила что сравнить, с чем и в конце спросила, что у вас 3 новых записей - добавить? Цены бы ей не было. Мне очень, к примеру, нравится Ваша надстройка - вот ее бы сделать такой универсальной)) Я же Вам не все скинул - файл намного больше и данных в нем также больше, приходится сравнивать, то одни данные, то другие. До новых встреч!
Ответить