#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")