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

Форум: MS ACCESS

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

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

 
 

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

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

тема: По форме (пересчет данных)
 
 автор: abelova   (21.12.2009 в 16:20)   личное сообщение
83 Кб.
 
 

Не знаю, как сделать, чтобы в форме пересчитывались поля из условия, что поле СОСТОЯЛО последующей записи должно быть равным полю ВСЕГО предыдущей записи и если какие-то значения меняются в предыдущей записи, то Поле СОСТОЯЛО последующей записи тоже бы пересчитывалось из условия. Помогите, пожалуйста, кто сможет. Запись с этим условием я добавляю, но мне надо, чтобы еще и при изменении каких-либо значений в полях тоже шел пересчет.

  Ответить  
 
 автор: Denis V.   (21.12.2009 в 16:59)   личное сообщение
 
 

А сейчас же как это сделано? Судя по картинке, у Вас всё работает ;-)

  Ответить  
 
 автор: abelova   (21.12.2009 в 17:38)   личное сообщение
 
 

Работает добавление записи с этим условием. Но мне надо, чтобы при изменении каких-то значений (например, изменится значение поля ПОСТУПИЛО за 18.12.2009, значит изменится значение поля ВСЕГО и в последующей записи должно изменится значение поля СОСТОЯЛО и т.д.) в уже занесенных записях в последующих шел пресчет.

  Ответить  
 
 автор: Denis V.   (21.12.2009 в 18:14)   личное сообщение
 
 

Хотите сказать, что в форме у Вас каждое поле присоединено к полю таблицы, т.е. нет ни одного вычисляемого поля?

  Ответить  
 
 автор: abelova   (21.12.2009 в 18:24)   личное сообщение
 
 

Поле ВСЕГО КОЕК - вычисляемое, оно получается: СОСТОЯЛО+ПОСТУПИЛО+ПЕРЕВОД_ИЗ_ДР_ОТД-ВЫПИСАНО-ПЕРЕВОД_В_ДР_ОТД-ПЕРЕВОД_В_ДР_БОЛЬНИЦЫ-УМЕРЛО

  Ответить  
 
 автор: Lukas   (21.12.2009 в 19:43)   личное сообщение
 
 

Поля "СОСТОЯЛО" и "ВСЕГО КОЕК" должны быть вычисляемыми в запросе - источнике формы.
Попробуй так, (на примере двух полей ПОСТУПИЛО и ВЫПИСАН):

SELECT 
    t1.Дата, 
    Nz(DSum("Поступило-Выписано","Таблица","Дата<" & Format(t1.Дата,"\#mm\/dd\/yyyy\#")),0) AS Состояло, 
    t1.Поступило, 
    t1.Выписано, 
    Состояло+t1.Поступило-t1.Выписано AS Всего
FROM Таблица AS t1
ORDER BY Дата

и еще, наверное, придется делать Recalc после изменения значений приходных/расходный полей.

Либо использовать не обновляемый запрос типа:

SELECT 
    t2.Дата, 
    Nz((SELECT Sum(t1.Поступило-t1.Выписано) FROM Таблица As t1 WHERE t1.Дата< t2.Дата),0) AS Состояло, 
    t2.Поступило, 
    t2.Выписано, 
    Состояло+t2.Поступило-t2.Выписано AS Всего
FROM Таблица AS t2
ORDER BY Дата;

Но тогда изменять значения полей придется в отдельной форме-карточке.

  Ответить  
 
 автор: abelova   (22.12.2009 в 16:10)   личное сообщение
 
 

У меня и так в запросе вычисляемое поле ВСЕГО_КОЕК создано.

  Ответить  
 
 автор: Lukas   (22.12.2009 в 18:12)   личное сообщение
 
 

Круто...

  Ответить  
 
 автор: Гоблин   (22.12.2009 в 22:25)   личное сообщение
 
 

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