U kunt de functies DVar en DVarP gebruiken om een schatting te maken van de variantie van een reeks waarden in een opgegeven set records (een domein). Gebruik de functies DVar en DVarP in een Visual Basic for Applications-module (VBA), een macro, een query-expressie of een berekend besturingselement in een formulier of rapport.
Gebruik de functie DVarP om de variantie te evalueren voor een populatie en de functie DVar als u dit wilt doen voor een steekproef van een populatie.
U kunt de functie DVar bijvoorbeeld gebruiken om de variantie te berekenen voor een reeks tentamencijfers van studenten.
Syntaxis
DVar(expr, domein [, criteria] )
DVarP(expr, domein [, criteria] )
De functies DVar en DVarP hebben de volgende argumenten:
| Argument | Beschrijving |
|---|---|
| expr | Vereist. Een expressie die het numerieke veld aangeeft waarvoor u de variantie wilt bepalen. Dit kan een tekenreeksexpressie zijn die een veld in een tabel of query aangeeft, of een expressie die een berekening uitvoert op de gegevens in dat veld. In expr kunt u het naamveld opnemen in een tabel, een besturingselement op een formulier, een constante of een functie. Als expr een functie bevat, kan dit een ingebouwde functie of een door een gebruiker gedefinieerde functie zijn, maar niet nog een statistische domein- of SQL-functie. Alle velden in expr moeten numerieke velden zijn. |
| 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 gegevensbereik te beperken waarop de functie DVar of DVarP wordt uitgevoerd. Criteria zijn bijvoorbeeld vaak gelijk aan de WHERE-component in een SQL-expressie, zonder het woord WHERE. Als u criteria weglaat, evalueren de functies DVar en DVarPexpr voor het hele domein. Elk veld dat is opgenomen in criteria moet ook een veld in domein zijn; anders retourneren de functies DVar en DVarP een Null. |
Opmerkingen
Als het domein naar minder dan twee records verwijst of als er minder dan twee records aan criteria voldoen, retourneren de functies DVar en DVarP een Null, waarmee wordt aangegeven dat er geen variantie kan worden berekend.
Ongeacht of u de functie DVar of DVarP gebruikt in een macro, een module, een query-expressie of een berekend besturingselement, moet u het criteriaargument zorgvuldig samenstellen. Alleen dan kan het argument goede resultaten opleveren.
U kunt de functie DVar of DVarP gebruiken om criteria op te geven in de rij Criteria van een selectiequery, in een expressie van een berekend veld in een query of in de rij Wijzigen in van een bijwerkquery.
Opmerking
U kunt de functies DVar en DVarP of de functies Var en VarP gebruiken in een berekende veldexpressie van een totalenquery. Als u de functie DVar of DVarP gebruikt, worden waarden geëvalueerd voordat de gegevens worden gegroepeerd. Als u de functie Var of VarP gebruikt, worden de gegevens gegroepeerd voordat de waarden van de veldexpressie worden geëvalueerd.
Gebruik de functies DVar en DVarP in een berekend besturingselement wanneer u criteria wilt opgeven om het gegevensbereik te beperken waarop de functie wordt uitgevoerd. Als u bijvoorbeeld de variantie wilt weergeven voor orders die moeten worden verzonden naar Californië, stelt u de eigenschap ControlSource van een tekstvak in op de volgende expressie:
=DVar("[Freight]", "Orders", "[ShipRegion] = 'CA'")
Als u alleen de standaarddeviatie wilt berekenen voor alle records in het domein, gebruikt u de functie Var of VarP .
Opmerking
Recordwijzigingen die niet zijn opgeslagen in het domein worden niet meegenomen in deze functies. Als u de functie DVar of DVarP wilt baseren op de gewijzigde waarden, moet u de wijzigingen eerst opslaan. Klik hiervoor onder Records op het tabblad Gegevens op Record opslaan, verplaats de focus naar een andere record of gebruik de methode Bijwerken.
Voorbeeld van een query
| Expressie | Resultaten |
|---|---|
| SELECT DVar("prijs per eenheid","Productverkoop","Prijs per eenheid>140") AS DVar_Value, DVarP("prijs per eenheid","Productverkoop","Prijs per eenheid<140") AS DVarP_Value FROM PRODUCTSales GROUP BY DVar("prijs per eenheid","ProductVerkoop","Prijs per eenheid","Prijs per eenheid","Prijs per eenheid>","Prijs per eenheid","Prijs per eenheid<140"); | Berekent de variantie van 'Prijs per eenheid' uit de tabel 'Productverkopen', waarbij 'prijs per eenheid' groter is dan 140 en geeft het resultaat weer in DVar_Value. Berekent ook de variantie van 'Prijs per eenheid' (waarbij de gegeven gegevens als de gehele populatie worden beschouwd), waarbij 'prijs per eenheid' kleiner is dan 140, en geeft de resultaten weer in DVarP_Value. |
VBA-voorbeelden
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.
Het volgende voorbeeld retourneert schattingen van de variantie voor een populatie en een steekproef van een populatie voor orders die naar het Verenigd Koninkrijk zijn verzonden. Het domein is de tabel Orders. Het argument criteria beperkt het resultaat tot een recordset waarvan Verzendland/-regio gelijk is aan UK.
Dim dblX As Double
Dim dblY As Double
' Sample estimate.
dblX = DVar("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK'")
' Population estimate.
dblY = DVarP("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK'")
Het volgende voorbeeld retourneert schattingen door gebruik te maken van een variabele, strCountryRegion, in het argument criteria . In de tekenreeksexpressie zijn enkele aanhalingstekens (') opgenomen, zodat wanneer de tekenreeksen worden samengevoegd, de letterlijke UK tekenreeks tussen enkele aanhalingstekens wordt geplaatst.
Dim strCountryRegion As String
Dim dblX As Double
strCountryRegion = "UK"
dblX = DVar("[Freight]", "Orders", _
"[ShipCountryRegion] = '" & strCountryRegion & "'")