Если у вас есть форма и вы хотите обновить элемент управления до результата двух других элементов управления, вы можете установить Источник управления на (http://office.microsoft.com/en-us/access-help/create-an-expression-HA001181384.aspx):
=[Control1]+[Control2]
Control1 и Control2 можно привязать к Field1 и Field2, задав для каждого источника управления имя соответствующего поля, однако вы не можете привязать этот Control3 к Field3, поскольку он уже установлен. Если вы хотите обновить Field3 в форме таким способом, вам нужно использовать код в событии, может подходить событие после обновления Control1 и Control2. Хранение вычислений противоречит правилам нормализации, поэтому вы должны решить, хотите ли вы этого. В Access 2010 вы можете создать вычисляемое поле (столбец), которое отличается от того, что оно заботится о своем собственном обновлении: http://msdn.microsoft.com/en-us/library/ff945943.aspx
Что касается значений по умолчанию, есть несколько вещей, которые следует учитывать:
- Нельзя установить значение по умолчанию в таблице AFAIK равным Field1 + Field2
- Свойство DefaultValue применяется только при добавлении новой записи. Если вы измените свойство DefaultValue, это изменение не будет автоматически применено к существующим записям
- Если элементы управления находятся в одной и той же форме, элемент управления, являющийся источником значения по умолчанию, должен появляться раньше в порядке табуляции, чем элемент управления, содержащий выражение.
Также рассмотрите, если вы используете:
=Field1 + Field2
Вы ссылаетесь на базовые поля в таблице, и это может привести к проблемам, если Field1 и Field2 также появляются в форме и могут быть обновлены. Было бы лучше использовать:
Me.MyControl.DefaultValue=Control1+Control2
Где элементы управления привязаны к Field1 и Field2. В VBA это будет означать, что значение по умолчанию будет установлено на результат вычисления, что вряд ли будет тем, что вы хотите, скорее всего, вы хотите:
Me.MyControl.DefaultValue="=Control1+Control2"