Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.02.2012, 15:13   #1
slone2179
Форумчанин
 
Аватар для slone2179
 
Регистрация: 22.04.2011
Сообщений: 155
По умолчанию Запрос на обновление

Здравствуйте, уважаемые! Нужно сделать запрос на обновление на строк. Сделал запрос
UPDATE ТАБЛИЦА SET ТАБЛИЦА.[Наименование поля] = "Значение неодинаковое", INVOICE.Дата = #неодинаковая#
WHERE (((INVOICE.Поле еще одно)=36));
нужно сделать очень много запросов на обновление, т.е. следующий запрос будет
UPDATE ТАБЛИЦА SET ТАБЛИЦА.[Наименование поля] = "Другое значение", INVOICE.Дата = #Другая дата#
WHERE (((INVOICE.Поле еще одно)=Это число будет 37, затем 38));
В запросе менять 350 раз очень долго. Можно ли это дело как-то автоматизировать?
slone2179 вне форума Ответить с цитированием
Старый 24.02.2012, 15:17   #2
slone2179
Форумчанин
 
Аватар для slone2179
 
Регистрация: 22.04.2011
Сообщений: 155
По умолчанию

Была бы возможность делать хотя бы так - каждый запрос на новой строке, тоже бы подошло
UPDATE ТАБЛИЦА SET ТАБЛИЦА.[Наименование поля] = "Значение неодинаковое", INVOICE.Дата = #неодинаковая#
WHERE (((INVOICE.Поле еще одно)=36));
UPDATE ТАБЛИЦА SET ТАБЛИЦА.[Наименование поля] = "Другое значение", INVOICE.Дата = #Другая дата#
WHERE (((INVOICE.Поле еще одно)=Это число будет 37));
slone2179 вне форума Ответить с цитированием
Старый 24.02.2012, 18:39   #3
gluk_fm
Форумчанин
 
Аватар для gluk_fm
 
Регистрация: 09.06.2011
Сообщений: 515
По умолчанию

Да создав простую таблицу где будет 3 поля (или сколько параметров у Вас там) и написав:

sub t()
dim db as database
set db=currentdb
dim p1 as string,p2 as string,p3 as string'с форматами параметров играйтесь сами в зависимости от свойст созданных вами полей

set t = db.openrecorset (запрос на выборку с таблицы описанной выше)

t.movefirst
Do Until t.EOF
p1 = t!["Значение неодинаковое"]
p2 = t![#неодинаковая#]
p3 = t![36 или как будет называться столбец с созданной таблицы]

db.execute("UPDATE ТАБЛИЦА SET ТАБЛИЦА.[Наименование поля] = " & p1 & ", INVOICE.Дата = #" & p2 & # " & _
"WHERE (((INVOICE.Поле еще одно)=" & p3 & "));")

t.MoveNext
Loop

Последний раз редактировалось gluk_fm; 24.02.2012 в 18:47.
gluk_fm вне форума Ответить с цитированием
Старый 24.02.2012, 23:09   #4
slone2179
Форумчанин
 
Аватар для slone2179
 
Регистрация: 22.04.2011
Сообщений: 155
По умолчанию

Да спасибо, gluk_fm! Сделал только немного по-другому. Только перекопав столько статей узнал, что хотел - что в запросе можно делать циклы. Но Ваш запрос работает в 2 раза быстрее моего. Значит Вы опять молодец!
slone2179 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос на обновление(UPDATE) Alex Jordan БД в Delphi 4 29.05.2011 12:22
запрос на обновление!!!!! Andel 013 Microsoft Office Access 2 23.12.2010 23:06
Запрос на обновление Andrey118 Microsoft Office Access 0 09.12.2010 20:55
запрос на обновление ww01031977 Microsoft Office Access 1 30.04.2010 16:07
запрос на обновление warshadow Microsoft Office Access 13 03.10.2009 16:56