сумма в мс-доступе - PullRequest
       14

сумма в мс-доступе

0 голосов
/ 02 января 2011

У меня есть три поля

поле1 = число,
поле2 = число,
поле3 = число

Теперь, как взять сумму?

Например:

field3 = sum(field1,field2)

или

Default Value = field1+field2

Ответы [ 3 ]

0 голосов
/ 02 января 2011

Если вы имеете в виду, как мне обновить всю таблицу:

UPDATE yourTable
SET field3 = field1 + field2
0 голосов
/ 02 января 2011

Если у вас есть форма и вы хотите обновить элемент управления до результата двух других элементов управления, вы можете установить Источник управления на (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"
0 голосов
/ 02 января 2011

Возможно, вам нужно использовать DSum.Это для Access 2003, но все равно должно применяться и, надеюсь, поможет: http://office.microsoft.com/en-us/access-help/calculate-the-sum-of-the-values-in-a-field-HP001100425.aspx

...