Функция DAvg

Отнася се за
Access за Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

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

Синтаксис

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

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

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

    

Забележки

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

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

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

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

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

Забележка

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

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

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

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

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

Съвети

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

Забележка

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

Пример

Забележка

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

Функцията по-долу връща средната цена за навло за поръчки, експедирани на или след дадена дата. Домейнът е таблицата "Поръчки". Аргументът "критерий " ограничава получения набор от записи въз основа на дадената страна/регион и датата на доставка. Забележете, че ключовата дума 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#