Как суммировать 1 конкретный столбец из пользовательского списка для отображения в текстовом поле в той же форме

#ms-access #listbox #ms-access-2010

#ms-access #список #ms-access-2010

Вопрос:

Я несколько часов пытался решить свою проблему самостоятельно, но безуспешно.

У меня есть следующие элементы управления

Пользовательская форма — [frm_Team_View]
Список — [lst.Team] (столбец 0 = имя, столбец 1 = Инициалы, столбец 2 = менеджер, столбец 3 = отработанные часы)

Я пытаюсь подсчитать общее количество отработанных часов для всей команды и отобразить это в текстовом поле — [txt_THours].

Я пытался сделать это в VBA, используя DSUM amp; SUM
Я также пробовал те же методы, используя источник управления.

 txt_THours.Value = Sum(Forms![frm_Team_View]![lst_Team].column(3))
  

Каждый раз, когда я продолжаю получать сообщение #Error, отображаемое в текстовом поле.

Мне удалось подсчитать количество строк в списке с помощью .listcount функции. Я не смог найти функцию для суммирования значений.

Запрос выполняется непосредственно из списка, поэтому не сохраняется отдельно. Я не могу сохранить запрос отдельно, поскольку это не позволит использовать другие функции, которые у меня есть в форме пользователя.

Заранее большое спасибо

Комментарии:

1. как обсуждалось ранее

Ответ №1:

Невозможно суммировать значения в списке с выражением.

Я предполагаю, что вы создаете RowSource список динамически? Когда вы сделаете это, сохраните предложение WHERE в переменной и используйте то же самое предложение WHERE в DSum выражении для текстового поля.

Или запустите цикл VBA по строкам после установки RowSource, но это кажется немного глупым.

 For i = 0 To Me.lst_Team.ListCount - 1
    mySum = mySum   Me.lst_Team.Column(3, i)
Next i
  

Комментарии:

1. Ваш ответ не работает. Однако я решил это сам

Ответ №2:

Мне удалось решить этот вопрос через несколько часов. Пожалуйста, смотрите ниже

 txt_THours = DSum("[Hrs]", "Manager_Query")