Среднее значение, количество и т. Д. Всего столбца таблицы в SQL-запросе или как функция в VBA для отображения результата в форме? - PullRequest
1 голос
/ 29 марта 2009

Мне нужно вычислить Count, Average и пару других элементов столбца в результате запроса, а затем поместить результат в текстовое поле в форме.

Я думал о том, чтобы либо внедрить его в Query и поместить результаты в столбец, либо что-то в этом роде, ИЛИ использовать функцию VBA для его вычисления; Однако я не знаю, как рассчитать это для всего столбца в VBA.

Есть предложения / примеры?

Ответы [ 3 ]

1 голос
/ 30 марта 2009

На самом деле я обнаружил, что это очень легко в VBA. Я не хотел добавлять другое поле в свой запрос, поэтому я сделал это:

Forms!MyForm!AvgTextBox = Avg([mytable.values2Baveraged])
Forms!MyForm!CountTextBox = Count([mytable.values2Bcounted])

Это вычисляет функцию для всего столбца. Это сработало идеально на тот случай, если кому-то все равно.

0 голосов
/ 29 марта 2009

Вы должны сделать эту операцию в запросе SQL. Агрегатные операции, такие как это, - то, в чем SQL превосходит. Это даст вам лучшую производительность и будет самым простым решением.

0 голосов
/ 29 марта 2009

Рассматривали ли вы агрегатные функции домена? Они примерно принимают форму:

DAvg("SomeField","SomeTable","Where Statement, If Required")
DCount("*","SomeTable")

Вы можете установить Control Soirce для функции управления, но функции агрегирования домена могут не подходить для большого набора записей.

Альтернативой является использование набора записей:

 Dim rs As DAO.Recordset
 Set rs = CurrentDB.OpenRecordset("SELECT Count(*) As CountAll " _
        & "FROM SomeTable")

 Me!txtTextBox=rs!CountAll
...