DAvg, functie

Van toepassing op
Access voor Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

U kunt de functie DAvg gebruiken om het gemiddelde van een set waarden in een opgegeven set records (een domein) te berekenen. Gebruik de functie DAvg in een VBA-module (Visual Basic for Applications), in een macro, in een query-expressie of in een berekend besturingselement.

U kunt de functie DAvg bijvoorbeeld gebruiken in de criteriarij van een selectiequery op vrachtkosten om de resultaten te beperken tot de records waar de vrachtkosten hoger zijn dan het gemiddelde. Een ander voorbeeld is dat u DAvg gebruikt in een expressie in een berekend besturingselement om de gemiddelde waarde van eerdere orders weer te geven naast de waarde van een nieuwe order.

Syntaxis

DAvg(expr, domein [, criteria] )

De syntaxis van de functie DAvg bevat deze argumenten:

Argument Beschrijving
expr Vereist. Een expressie waarmee u het numerieke veld aangeeft dat de numerieke gegevens bevat waarvan u het gemiddelde wilt berekenen. Dit kan een tekenreeksexpressie zijn waarmee een veld in een tabel of query wordt geïdentificeerd, of het kan een expressie zijn waarmee een berekening wordt uitgevoerd op gegevens in dat veld. In expr kunt u de naam van een veld in een tabel, een besturingselement op een formulier, een constante of een functie opnemen. Als expr een functie bevat, kan deze zijn ingebouwd of door de gebruiker gedefinieerd, maar niet een andere domeinaggregatie of statistische SQL-functie.
domein Vereist. Een tekenreeksexpressie waarmee de set records wordt aangegeven waaruit het domein bestaat. Dit kan de naam van een tabel zijn of de naam van een query waarvoor geen parameter nodig is.
criteria Optioneel. Een tekenreeksexpressie die wordt gebruikt om het bereik van gegevens te beperken waarop de DAvg-functie wordt uitgevoerd. Criteria is bijvoorbeeld vaak gelijk aan de WHERE-component in een SQL-expressie, zonder het woord WHERE. Als criteria worden weggelaten, evalueert de functie DAvgexpr op basis van het hele domein. Elk veld dat is opgenomen in criteria , moet ook een veld in het domein zijn; anders retourneert de functie DAvg een Null.

    

Opmerkingen

Records die Null-waarden bevatten, worden niet opgenomen in de berekening van het gemiddelde.

Of u de functie DAvg nu gebruikt in een macro of module, in een query-expressie of in een berekend besturingselement, u moet het criteriumargument zorgvuldig samenstellen om ervoor te zorgen dat het correct wordt geëvalueerd.

U kunt de functie DAvg gebruiken om criteria op te geven in de criteriarij van een query. Stel dat u een lijst wilt zien met alle producten waarvoor orders openstaan met een hoeveelheid die groter is dan de gemiddelde hoeveelheid van orders. U kunt dan een query maken voor de tabellen Orders, Orderdetails en Producten, en de velden Product Name en Quantity met de volgende expressie toevoegen aan de criteriarij onder het veld Quantity:

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

U kunt de functie DAvg ook gebruiken in een berekende veldexpressie in een query of in de rij Bijwerken naar van een updatequery.

Opmerking

U kunt de functie DAvg of Avg gebruiken in een expressie van een berekend veld in een totalenquery. Als u de functie DAvg gebruikt, vindt de berekening van de waarden plaats voordat de gegevens zijn gegroepeerd. Als u de functie Avg gebruikt, worden de gegevens gegroepeerd voordat het gemiddelde van de waarden in de veldexpressie wordt berekend.

Gebruik de functie DAvg in een berekend besturingselement wanneer u criteria wilt opgeven om het gegevensbereik te beperken waarop de functiewordt uitgevoerd. Als u bijvoorbeeld de gemiddelde vrachtkosten wilt weergeven voor orders die naar Californië worden verzonden, stelt u de eigenschap ControlSource van een tekstvak in op de volgende expressie:

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

Als u alleen het gemiddelde wilt berekenen van alle records in het domein, gebruikt u de functie Avg .

U kunt de functie DAvg gebruiken in een module of macro, of in een berekend besturingselement in een formulier als het veld dat u wilt weergeven niet in de recordbron van het formulier staat. Stel dat u een formulier hebt op basis van de tabel Orders en dat u het veld Hoeveelheid uit de tabel Orderdetails wilt toevoegen aan het formulier om het gemiddelde aantal bestelde artikelen weer te geven voor de klant. U kunt dan de functie DAvg gebruiken om deze berekening uit te voeren en de gegevens in het formulier op te nemen.

Tips

  • Als u de functie DAvg gebruikt in een berekend besturingselement, kunt u het besturingselement toevoegen aan de kop- of voettekst van het formulier, zodat de waarde voor dit besturingselement niet steeds opnieuw wordt berekend als u naar een nieuwe record gaat.
  • Als het gegevenstype van het veld waaruit expr is afgeleid een getal is, retourneert de functie DAvg het gegevenstype Double. Als u DAvg gebruikt in een berekend besturingselement, kunt u de prestaties verbeteren door een functie voor conversie van het gegevenstype toe te voegen aan de expressie.
  • Hoewel u de functie DAvg kunt gebruiken om het gemiddelde van waarden in een veld in een refererende tabel te bepalen, is het mogelijk efficiënter om een query te maken die alle velden bevat die u nodig hebt en vervolgens uw formulier of rapport op die query te baseren.

Opmerking

Niet-opgeslagen wijzigingen in records in domein worden niet opgenomen wanneer u deze functie gebruikt. Als u wilt dat de functie DAvg is gebaseerd op de gewijzigde waarden, moet u de wijzigingen eerst opslaan door te klikken op Record opslaan onder Records op het tabblad Gegevens , de focus naar een andere record te verplaatsen of door de methode Update te gebruiken.

Voorbeeld

Opmerking

In de volgende voorbeelden wordt het gebruik van deze functie in een VBA-module (Visual Basic for Applications) toegelicht. Meer informatie over het werken met VBA vindt u door in de vervolgkeuzelijst naast Zoeken de optie Referentie voor ontwikkelaars te selecteren en een of meer termen in het zoekvenster te typen.

De volgende functie retourneert de gemiddelde vrachtkosten voor orders die op of na een bepaalde datum zijn verzonden. Het domein is de tabel Orders. Het argument criteria beperkt de resulterende set records op basis van het opgegeven land/de opgegeven regio en verzenddatum. Houd er rekening mee dat het trefwoord AND is opgenomen in de tekenreeks om de meerdere velden in het argument criteria te scheiden. Alle records die worden gebruikt voor het berekenen van DAvg voldoen aan beide criteria.

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

U kunt de functie aanroepen met de volgende code in het venster Direct:

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