Applies ToAccess за Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Можете да използвате функцията DAvg , за да изчислите средната стойност на набор от стойности в указан набор от записи ( домейн ). Използвайте функцията DAvg в модул на Visual Basic for Applications (VBA), в макрос, в израз на заявка или в изчисляема контрола.

Можете например да използвате функцията DAvg в реда с критерии на заявка за избиране на разходи за навло, за да ограничите резултатите до записите, където разходите за навло надвишават средната стойност. Или можете да използвате израз, включващ функцията DAvg в изчисляема контрола, и да покажете средната стойност на предишните поръчки до стойността на нова поръчка.

Синтаксис

DAvg ( израз ; домейн [, критерий] )

Синтаксисът на функцията DAvg има следните аргументи:

Аргумент

Описание

expr

Задължителен. Израз, който идентифицира полето, съдържащо числовите данни, които искате да осредните. Това може да бъде низов израз, идентифициращ поле в таблица или заявка, или израз, който извършва изчисление върху данните в това поле. В expr можете да включите името на поле в таблица, контрола във формуляр, константа или функция. Ако expr съдържа функция, тя може да бъде вградена или дефинирана от потребителя, но не и друга агрегатна функция на домейн или SQL агрегатна функция.

domain

Задължителен. Низов израз, идентифициращ набора от записи, който съставлява домейна. Това може да бъде името на таблица или името на заявка за заявка, която не изисква параметър.

criteria

По желание. Низов израз, използван за ограничаване на диапазона от данни, върху който се изпълнява функцията DAvg . Например критерият често е еквивалентен на клаузата WHERE в SQL израз, без думата WHERE. Ако criteria е пропуснато, функцията DAvg изчислява израз спрямо целия домейн. Всяко поле, което е включено в criteri, трябва да бъде също и поле в domain; в противен случай функцията DAvg връща Null.

Забележки

Записите, съдържащи стойности Null , не се включват в изчислението на средната стойност.

Независимо дали използвате функцията DAvg в макрос, модул, в израз на заявка, или в изчисляема контрола, трябва внимателно да създадете аргумента criteria , за да сте сигурни, че ще се изчислява правилно.

Можете да използвате функцията DAvg , за да зададете критерии в реда Критерии на заявка. Да предположим например, че искате да видите списък на всички продукти, поръчани в количества над средното количество за поръчка. Можете да създадете заявка в таблиците "Поръчки", "Подробни данни за поръчки" и "Продукти" и да включите полето "Име на продукт" и полето "Количество" със следния израз в реда Критерии под полето "Количество":

>DAvg("[Quantity]", "Orders")

Можете също да използвате функцията DAvg в израз за изчисляемо поле в заявка или в реда Актуализиране на на на заявка за актуализиране.

Забележка: Можете да използвате функцията DAvg или Avg в израз за изчисляемо поле в заявка за общи суми. Ако използвате функцията DAvg , стойностите се осреднят, преди данните да бъдат групирани. Ако използвате функцията Avg , данните се групират, преди стойностите в израза за полето да се осреднят.

Използвайте функцията DAvg в изчисляема контрола, когато трябва да зададете критерии за ограничаване на диапазона от данни, върху който се изпълнява функцията DAvg . Например за да покажете средната цена на навло за пратки, изпратени до Калифорния, задайте свойството ControlSource на текстово поле на следния израз:

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

Ако просто искате да осредните всички записи в домейна, използвайте функцията Avg .

Можете да използвате функцията DAvg в модул или макрос или в изчисляема контрола във формуляр, ако поле, което трябва да покажете, не е в източника на записи, на който се базира вашият формуляр. Нека например да имате формуляр, базиран на таблицата "Поръчки", и искате да включите полето "Количество" от таблицата "Подробни данни за поръчки", за да покажете средния брой артикули, поръчани от конкретен клиент. Можете да използвате функцията DAvg , за да извършите това изчисление и да покажете данните във вашия формуляр.

Съвети

  • Ако използвате функцията DAvg в изчисляема контрола, може да искате да поставите контролата в горния или долния колонтитул на формуляра, така че стойността за тази контрола да не се преизчислява всеки път, когато преминавате към нов запис.

  • Ако типът данни на полето, от което произлиза изразът , е число, функцията DAvg връща данни от тип Double. Ако използвате функцията DAvg в изчисляема контрола, включете функция за преобразуване на типа данни в израза, за да подобрите производителността.

  • Въпреки че можете да използвате функцията DAvg , за да определите средната стойност на стойностите в поле в външна таблица, може да е по-ефективно да създадете заявка, съдържаща всички полета, които ви трябват, и след това да базирате вашия формуляр или отчет на тази заявка.

Забележка: Незаписаните промени в записите в domain не се включват, когато използвате тази функция. Ако искате функцията DAvg да се базира на променените стойности, трябва първо да запишете промените, като щракнете върху Запиши записа под Записи в раздела Данни , преместите фокуса върху друг запис или използвате метода Update .

Пример

Забележка: Примерите по-долу илюстрират използването на тази функция във Visual Basic for Applications (VBA). За повече информация относно работата с VBA изберете Справочни материали за разработчици в падащия списък до Търсене и въведете един или няколко термина в полето за търсене.

Следващата функция връща средната стойност на навло за поръчките, експедирани за или след дадена дата. Домейнът е таблицата "Поръчки". Аргументът criteria ограничава получения набор от записи въз основа на дадената страна/регион и дата на доставка. Обърнете внимание, че ключовата дума AND е включена в низа, за да се разделят множеството полета в аргумента критерий . Всички записи, включени в изчислението на функцията DAvg , ще имат и двата критерия.

Public Function AvgFreightCost _    (ByVal strCountryRegion As String, _     ByVal dteShipDate As Date) As Double    AvgFreightCost = DAvg("[Freight]", "Orders", _        "[ShipCountryRegion] = '" & strCountryRegion & _        "'AND [ShippedDate] >= #" & dteShipDate & "#")End Function

За да извикате функцията, използвайте следния ред код в екрана Забава:

:AvgFreightCost "UK", #1/1/96#

Нуждаете ли се от още помощ?

Искате ли още опции?

Разгледайте ползите от абонамента, прегледайте курсовете за обучение, научете как да защитите устройството си и още.

Общностите ви помагат да задавате и отговаряте на въпроси, да давате обратна връзка и да получавате информация от експерти с богати знания.