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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Странное поведение вычисляемых полей в подформе
 
 автор: lulukyan   (31.05.2011 в 14:30)   личное сообщение
 
 

В нижнем колонтитуде подформы имеются вычисляемые поля суммирующее выражение из полей подформы. При переходе с одной записи на другую в основной форме эти вычисляемые поля непогнозируемо долго считаются. При этом вычисляемые поля в разделе данных подформы мерцают.
Ещё одна странность в том, что если войти и выйти из вычисляемых полей раздела данных они очищаются.
Какие либо идеи есть?

  Ответить  
 
 автор: osmor   (31.05.2011 в 14:53)   личное сообщение
 
 

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

  Ответить  
 
 автор: lulukyan   (31.05.2011 в 17:15)   личное сообщение
 
 


если вычисляемые поля в колонтитуле зависят от вычисляемых полей в разделе данных, то в принципе будет медленней.


Нет в выражении вычисляемого поля в колонтитуле нет зависимости от вычисляемых аолей раздела данных. Выражение имеет вид

=Sum(([QttyBig]*[SmallInBig]+[QttySmall])*[Price])

где все значения берутся из запроса источника подформы.

Кстати, помнится я в самом начале пытался вместо всего выражения в склбках подставить вычисляемое поле но у меня это не получилось. В чём причина была уже не помню. Мне показалось, что так делать нельзя.


постарайтесь все вычисления вынести на уровень запроса. А в форме только отображать вычесленные данные


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

  Ответить  
 
 автор: Анатолий (Киев)   (31.05.2011 в 14:54)   личное сообщение
 
 

А если субформу открыть отдельно?
Условное форматирование есть?
Команд на принудительное сохранение записи (даже если изменений не было) в процедурах нет?


В нижнем колонтитуде подформы

Вы имеете ввиду область "примечание"?


вычисляемые поля суммирующее выражение из полей подформы

Покажите примеры выражений с пояснениями.

  Ответить  
 
 автор: lulukyan   (31.05.2011 в 17:30)   личное сообщение
 
 


А если субформу открыть отдельно?


Ну в принципе так вычисляемое поле ведёт себя более прогнозируемо. Хотя некоторые странности остаются. Например его значение отображается значительно больше времени необходимого для вычислений. Я исхожу из того что по нажатию F9 значение перерисовывается на порядки быстрее. Кстати, о птичках. Нажатие F9 в основной форме приводит к фатальному результату. Программа аварийно завершается. Тоже интересующий меня вопрос :-)


Условное форматирование есть?


кажется нет :-)


Да вроде нет



Вы имеете ввиду область "примечание"?


да


Покажите примеры выражений с пояснениями.



=Sum(([Количество блоков]*[Количество штук в блокое]+[Количество штук])*[Цена])

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