Можете да използвате функцията 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#