Функции DVar, DVarP

Применяется к
Access для Microsoft 365 Access 2021 Access 2019 Access 2016

Функции DVar и DVarP можно использовать для оценки дисперсии в наборе значений в указанном наборе записей (домене). Используйте функции DVar и DVarP в модуле Visual Basic для приложений (VBA), макросе, выражении запроса или вычисляемом элементе управления в форме или отчете.

Функция DVarP используется для оценки дисперсии генеральной совокупности, а функция DVar — для оценки дисперсии выборки из генеральной совокупности.

Например, можно воспользоваться функцией DVar для расчета дисперсии в наборе оценок по тестам.

Синтаксис

DVar(expr, domain [, criteria] )

DVarP(expr, domain [, criteria] )

Функции DVar и DVarP принимают следующие аргументы:

Аргумент Описание
выражение Обязательный аргумент. Выражение, определяющее числовое поле, для которого требуется найти дисперсию. Это может быть строковое выражение, идентифицирующее поле из таблицы или запроса, или выражение, выполняющее вычисление данных в этом поле. В expr можно включить поле имени в таблицу, элемент управления в форме, константу или функцию. Если expr включает функцию, она может быть встроенной или определяемой пользователем, но не может быть другой агрегатной или агрегатной функцией SQL. Любое поле, включенное в expr, должно быть числовым.
подмножество Обязательный аргумент. Строковое выражение, определяющее набор записей, которые образуют подмножество. Это может быть имя таблицы или имя запроса, для которого не требуются параметры.
условия — необязательный аргумент. Строковое выражение, используемое для ограничения диапазона данных, на котором выполняется функция DVar или DVarP . Например, критерии часто эквивалентны предложению WHERE в выражении SQL без слова WHERE. Если условия опущены, функции DVar и DVarP оценивают expr для всего домена. Любое поле, включенное в условия, также должно быть полем в домене; В противном случае функции DVar и DVarP возвращают значение NULL.

Замечания

Если домен ссылается на менее двух записей или если меньше двух записей удовлетворяют критериям, функции DVar и DVarP возвращают значение NULL, указывающее, что дисперсию невозможно вычислить.

Независимо от того, используете ли вы функцию DVar или DVarP в макросе, модуле, выражении запроса или вычисляемом элементе управления, необходимо тщательно создать аргумент условия , чтобы убедиться, что он будет правильно оценен.

Вы можете использовать функцию DVar или DVarP, чтобы указать условия в строке Условие отбора запроса, в выражении вычисляемого поля в запросе или в строке Обновление в запросе на обновление.

Примечание

Функции DVar и DVarP или Var и VarP можно использовать в вычисляемом выражении поля в запросе итогов. При использовании функции DVar или DVarP значения вычисляются перед группировкой данных. При использовании функции Var или VarP данные группируются перед вычислением значений в выражении поля.

Используйте функции DVar и DVarP в вычисляемом элементе управления, если необходимо указать критерии для ограничения диапазона данных, по которым выполняется функция. Например, чтобы вывести дисперсию для заказов, отправляемых в Калифорнию, задайте для свойства поля Данные следующее выражение:

=DVar("[Freight]", "Orders", "[ShipRegion] = 'CA'")

Если вы просто хотите найти стандартное отклонение во всех записях в домене, используйте функцию Var или VarP .

Примечание

Несохраненные изменения записей в домене не включаются при использовании этих функций. Если вы хотите, чтобы функция DVar или DVarP учитывала измененные значения, необходимо сначала сохранить изменения, нажав кнопку Сохранить запись в разделе Записи на вкладке Данные, переместив фокус на другую запись или используя метод Update.

Пример запроса

Выражение Результаты
SELECT DVar("unitprice", "productSales", "unitprice>140") AS DVar_Value, DVarP("unitprice","productSales","unitprice<140") AS DVarP_Value FROM productSales GROUP BY DVar("unitprice","productSales","unitprice>140"), DVarP("unitprice","productSales","unitprice<140"); Вычисляет отклонение "UnitPrice" из таблицы "ProductSales", где значение "unitprice" больше 140, и отображает результат в DVar_Value. Также вычисляет отклонение "UnitPrice" (с учетом заданных данных как всей совокупности), где значение "unitprice" меньше 140, и отображает результаты в DVarP_Value.

Примеры VBA

Примечание

В примерах ниже показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA). Чтобы получить дополнительные сведения о работе с VBA, выберите Справочник разработчика в раскрывающемся списке рядом с полем Поиск и введите одно или несколько слов в поле поиска.

В этом примере возвращаются оценки дисперсии по генеральной совокупности и по выборке для заказов, отправленных в Великобританию. Подмножеством является таблица "Заказы" (Orders). Аргумент условия ограничивает результирующий набор записей теми, для которых ShipCountryRegion равен Великобритании.

Dim dblX As Double
Dim dblY As Double
' Sample estimate.
dblX = DVar("[Freight]", "Orders", _
    "[ShipCountryRegion] = 'UK'")
' Population estimate.
dblY = DVarP("[Freight]", "Orders", _
    "[ShipCountryRegion] = 'UK'")

Следующий пример возвращает оценки с помощью переменной strCountryRegion, в аргументе criteria . Обратите внимание, что в строковое выражение включаются одинарные кавычки ('), поэтому при объединии строковый литерал UK будет заключен в одинарные кавычки.

Dim strCountryRegion As String
Dim dblX As Double
strCountryRegion = "UK"
dblX = DVar("[Freight]", "Orders", _
    "[ShipCountryRegion] = '" & strCountryRegion & "'")