Du kan använda funktionen DMedel för att beräkna medelvärdet av en uppsättning värden i en angiven uppsättning poster (en domän). Använd funktionen DMedel i en VBA-modul (Visual Basic for Applications), i ett makro, i ett frågeuttryck eller i en beräknad kontroll.
Du kan till exempel använda funktionen DMedel i villkorsraden i en urvalsfråga om fraktkostnad för att begränsa resultatet till de poster där fraktkostnaden överskrider medelvärdet. Du kan också använda ett uttryck som innehåller funktionen DMedel i en beräknad kontroll och visa det genomsnittliga värdet av tidigare order intill värdet för en ny order.
Syntax
DMedel(uttr, domän [, villkor] )
Funktionssyntaxen DMedel har följande argument:
| Argument | Beskrivning |
|---|---|
| uttr | Obligatoriskt. Ett uttryck där du identifierar det fält som innehåller de numeriska värden du vill beräkna medelvärdet för. Det kan vara ett stränguttryck som identifierar ett fält i en tabell eller fråga, eller ett uttryck som utför en beräkning på data i det fältet. I uttr kan du ta med namnet på ett fält i en tabell, en kontroll i ett formulär, en konstant eller en funktion. Om uttr innehåller en funktion kan den vara antingen inbyggd eller användardefinierad, men inte någon annan mängdfunktion för domäner eller SQL-mängdfunktioner. |
| domän | Obligatoriskt. Ett stränguttryck där du identifierar den uppsättning poster som utgör domänen. Det kan vara ett tabellnamn eller ett frågenamn för en fråga som inte kräver någon parameter. |
| villkor | Valfritt. Ett stränguttryck som används för att begränsa det dataområde som DMedel körs på. Villkor motsvarar till exempel ofta WHERE-satsen i ett SQL-uttryck, utan ordet WHERE. Om villkor utelämnas utvärderar funktionen DMedeluttr mot hela domänen. Alla fält som ingår i villkor måste också vara ett fält i domänen. annars returnerar funktionen DMedel null. |
Anmärkningar
Poster som innehåller Null-värden tas inte med i beräkningen av medelvärdet.
Oavsett om du använder funktionen DMedel i ett makro eller en modul, i ett frågeuttryck eller i en beräknad kontroll måste du skapa argumentet villkor noggrant för att säkerställa att det utvärderas korrekt.
Du kan använda funktionen DMedel för att ange villkor i raden Villkor i en fråga. Anta till exempel att du vill visa en lista över alla produkter som beställts i större antal än det genomsnittliga antalet. Du kan skapa en fråga med tabellerna Orders, Order Details och Products och ta med fältet Product Name och fältet Quantity med följande uttryck i raden Villkor under fältet Quantity:
>DAvg("[Quantity]", "Orders")
Du kan också använda funktionen DMedel i ett beräknat fältuttryck i en fråga eller på raden Uppdatera till i en uppdateringsfråga.
Obs
Du kan använda antingen funktionen DMedel eller Medel i ett beräknat fältuttryck i en summafråga. Om du använder funktionen DMedel beräknas värdena innan data grupperas. Om du använder funktionen Medel grupperas data innan värdena i fältuttrycket beräknas.
Använd funktionen DMedel i en beräknad kontroll när du behöver ange villkor för att begränsa det dataområde som funktionen DMedel utförs på. Om du till exempel vill visa den genomsnittliga fraktkostnaden för en order som levereras till Kalifornien anger du egenskapen Kontrollkälla för en textruta till följande uttryck:
=DAvg("[Freight]", "Orders", "[ShipRegion] = 'CA'")
Om du bara vill beräkna medelvärdet för alla poster i domänen använder du funktionen Medel .
Du kan använda funktionen DMedel i en modul eller i ett makro, eller i en beräknad kontroll i ett formulär om det fält som du vill visa inte finns i den datakälla som formuläret baseras på. Anta att du har ett formulär som baseras på tabellen Orders och du vill ta med fältet Quantity från tabellen Order Details för att kunna visa genomsnittligt antal produkter som beställts av en viss kund. Du kan använda funktionen DMedel för att utföra denna beräkning och visa data i formuläret.
Tips!
- Om du använder funktionen DMedel i en beräknad kontroll, kanske du vill placera kontrollen i formulärhuvudet eller formulärfoten så att värdet för den här kontrollen inte beräknas om varje gång du flyttar till en ny post.
- Om datatypen för det fält som uttr härleds från är ett tal returnerar funktionen DMedel datatypen Double. Om du använder funktionen DMedel i en beräknad kontroll, ska du ta med en funktion för konvertering av datatyper i uttrycket för att förbättra prestanda.
- Även om du kan använda funktionen DMedel för att fastställa medelvärdet av värden i ett fält i en sekundärtabell, kan det vara mer effektivt att skapa en fråga som innehåller alla fält som du behöver och sedan basera formuläret eller rapporten på den frågan.
Obs
Ej sparade ändringar av poster i domän tas inte med när du använder den här funktionen. Om du vill att funktionen DMedel ska baseras på ändrade värden, måste du först spara ändringarna genom att klicka på Spara post under Poster på fliken Data och flytta fokus till en annan post, eller använda metoden Uppdatera.
Exempel
Obs
I exemplen nedan visar vi hur du använder den här funktionen i en Visual Basic for Applications-modul (VBA). Om du vill läsa mer om hur man använder VBA, kan du välja Info för utvecklare i listrutan bredvid Sök och sedan skriva en eller flera söktermer i sökrutan.
Följande funktion returnerar genomsnittlig fraktkostnad för order som levererats på eller efter ett angivet datum. Domänen är tabellen Orders. Argumentet villkor begränsar den resulterande uppsättningen poster baserat på det angivna landet/regionen och leveransdatumet. Observera att nyckelordet OCH ingår i strängen för att separera flera fält i argumentet villkor . Alla poster som ingår i beräkningen av funktionen DMedel har båda dessa kriterier.
Public Function AvgFreightCost _
(ByVal strCountryRegion As String, _
ByVal dteShipDate As Date) As Double
AvgFreightCost = DAvg("[Freight]", "Orders", _
"[ShipCountryRegion] = '" & strCountryRegion & _
"'AND [ShippedDate] >= #" & dteShipDate & "#")
End Function
Använd följande rad med kod i kommandofönstret för att anropa funktionen:
:AvgFreightCost "UK", #1/1/96#