DSum, возвращающий количество строк вместо общего значения - PullRequest
0 голосов
/ 28 мая 2011

У меня есть следующий код, прикрепленный к текстовому полю в форме:

=DSum("[subform].Form![POINTS]","ATTENDANCE","[subform].Form![EMPLOYEE NO] = [EMPLOYEE NO]")

В идеале это даст общее количество баллов, набранных сотрудником, которого мы в данный момент ищем.Тем не менее, я получаю общую сумму строк в моей таблице.

Кто-нибудь знает, как я могу получить общую сумму значений вместо количества строк?

Спасибо

Ответы [ 2 ]

1 голос
/ 28 мая 2011

Если вы хотите получить сумму от подчиненной формы, и ваша подчиненная форма синхронизирована с основной, будет гораздо эффективнее действовать следующим образом:

  1. создать текстовое поле txtTotalPoints = sum(Points) в нижнем колонтитуле вашей подчиненной формы
  2. см. Этот элемент управления в основной форме: txtMainResult =subform!form!txtTotalPoints
  3. Скрыть txtTotalPoints (или сам нижний колонтитул)

Как правило, это будет намного быстрее.

0 голосов
/ 28 мая 2011

Насколько я знаю, функции Домена, такие как DSum, DLookup, DCount и т. Д., Используются для поиска и возврата значений из таблицы. Первый аргумент - это поле, второй - таблица, а третий - критерий или оператор WHERE, который гарантирует, что вы получите правильный набор записей. Ваш первый аргумент относится к полю формы. Я думаю, что это неправильно. Ваш первый элемент в выражении WHERE также является полем формы. Я это тоже неверно. Вам нужно попробовать что-то вроде этого:

=DSum("POINTS","ATTENDANCE","[EMPLOYEE NO] = " & [subform].Form![EMPLOYEE NO])
...