Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Присваивание значения
 
 автор: cja   (27.11.2009 в 11:16)   личное сообщение
15 Кб.
 
 

Добрый день! Подскажите пожалуйста каким образом в таблице присвоить одной строчке значение другой с условием. См. .jpg

  Ответить  
 
 автор: kot_k_k   (27.11.2009 в 11:25)   личное сообщение
 
 

вопрос а какая из строк "правильная"?

вариант № 1 - обнулить ВСЕ строчки с таким названием если есть одна нулевая?
strsql="select * from tabla where kol=0 and name=" & Текущее
set rs=dbs.openrecordset (strsql)
if rs.eof=false then dbs.execute ("update tabla set kol=0 where name=" & Текущее)

  Ответить  
 
 автор: cja   (27.11.2009 в 11:35)   личное сообщение
40 Кб.
 
 

см. .jpg

  Ответить  
 
 автор: kot_k_k   (27.11.2009 в 11:38)   личное сообщение
 
 

вариант № 2 - находим первое значение нужного названия и по нему выставляем все остальные.
strsql="select * from tabla where name=" & Текущее & "Order by Поле_Индекс_Нужный_Нам"
set rs=dbs.openrecordset (strsql)
if rs.eof=false then dbs.execute ("update tabla set kol=" & rs!kol & " where name=" & Текущее)

но ответь зачем такое действо, не проще удалить все если мы меняем значение которое хранили до этого долго и бережно


Упс уже увидел новый рис. - так это вариант № 1. только с циклом по переборке уникальных значений для поля название - для ускорения процесса

  Ответить  
 
 автор: kot_k_k   (27.11.2009 в 11:58)   личное сообщение
 
 

Вот тогда такое где то:

strsql="select DISTINCT naimen from tabla where kol=0"
set rs=dbs.openrecordset (strsql)
do while re.eof=false
dbs.execute ("update tabla set kol=0 where name=" & rs!name)
rs.movenext
loop

  Ответить  
 
 автор: Силblч   (27.11.2009 в 12:06)   личное сообщение
 
 

может так?


update tablica set kol=0
where exists (select 1 from tablica as t2 where t2.polename=tablica.polename and t2.kol=0)

  Ответить  
 
 автор: cja   (27.11.2009 в 13:30)   личное сообщение
15 Кб.
 
 

а можно на моём примере пожалуйста! я чего то не правильно подставляю...

update tablica set kol=0
where exists (select 1 from tablica as t2 where t2.polename=tablica.polename and t2.kol=0)

  Ответить  
 
 автор: kot_k_k   (27.11.2009 в 14:07)   личное сообщение
 
 

тама возможно ошибка вот как справочнике
Предикат EXISTS (с необязательным зарезервированным словом NOT) используется в 
логическом выражении для определения того, должен ли подчиненный запрос возвращать 
какие-либо записи.

В подчиненном запросе можно использовать псевдонимы таблиц для ссылки на таблицы, 
перечисленные в предложении FROM, расположенном вне подчиненного запроса.  
В следующем примере отбираются фамилии  и имена сотрудников, чья зарплата равна или 
больше средней зарплаты сотрудников, имеющих ту же должность.  
В данном примере таблица "Сотрудники" получает псевдоним "Т1":

SELECT Фамилия,
Имя, Должность, Оклад
FROM Сотрудники AS T1
WHERE Оклад >=
(SELECT Avg(Оклад)
FROM Сотрудники
WHERE T1.Должность = Сотрудники.Должность) Order by Должность;


п.с. не все работают в 2007 (без коментов)

  Ответить  
 
 автор: Силblч   (27.11.2009 в 14:47)   личное сообщение
 
 

не могу... на работе...
просто подставьте свои объекты вместо. и все.

  Ответить  
 
 автор: Explorer   (27.11.2009 в 13:10)   личное сообщение
 
 

по-Английски правильно пишется Assignee

  Ответить  
 
 автор: kot_k_k   (27.11.2009 в 13:18)   личное сообщение
 
 

Чукча не читатеть, Чукча - писатель!!!

  Ответить  
 
 автор: cja   (27.11.2009 в 14:46)   личное сообщение
 
 

Всем спасибо!!! Разобрался!!!

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList