Было бы лучше создать запрос, а затем, чтобы кто / что бы ни нуждался в этом вычисленном значении, используйте запрос вместо таблицы напрямую.
ОДНАКО, вы можете создать триггер в форме для чего-то вроде события OnCurrent, а затем заставить этот триггер выполнить следующее.
me.txtCalcField = me.subtotal - me.discount + me.delivery
Однако, это сработает, если вы измените записи. Может быть, немного лучше проверить, установлен ли он первым
if isnull me.txtCalcField then
me.txtCalcField = me.subtotal - me.discount + me.delivery
endif
Но тогда, если значения его компонентов будут сброшены, ваше значение не будет обновлено. В этом случае вы также можете поместить триггеры в эти поля (возможно, события AfterUpdate).
OR
Вы можете проверить, что значения не отличаются каждый раз.
if isnull me.txtCalcField then
if me.txtCalcField <> me.subtotal - me.discount + me.delivery then
me.txtCalcField = me.subtotal - me.discount + me.delivery
endif
endif
(который, вероятно, не будет работать должным образом с реалами, но может работать с валютой)
Конечно, все это предполагает, что only способ обновления компонентов txtCalcField - через форму навсегда.
Это все собачий завтрак - в этом случае я возвращаю вас к моему первому утверждению - используйте запрос.