Funktionerna DMin och DMax

Gäller för
Access för Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Du kan använda funktionerna DMin och DMax för att fastställa lägsta och högsta värden i en angiven uppsättning poster (en domän). Använd funktionerna DMin och DMax i en VBA-modul (Visual Basic for Applications), ett makro, ett frågeuttryck eller en beräknad kontroll.

Du kan till exempel använda funktionerna DMin och DMax i beräknade kontroller i en rapport för att visa det minsta och största orderbeloppet för en viss kund. Du kan använda funktionen DMin i ett frågeuttryck för att visa alla order med en rabatt större än det minsta möjliga rabattbeloppet.

Syntax

DMin(uttr, domän [, villkor] )

DMax(uttr, domän [, villkor] )

Funktionerna DMin och DMax har följande argument:

Argument Beskrivning
uttr Obligatoriskt. Ett uttryck som identifierar det fält du vill hitta det högsta eller lägsta vä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 dataintervall som DMin eller DMax körs på. Villkor motsvarar till exempel ofta WHERE-satsen i ett SQL-uttryck, utan ordet WHERE. Om villkor utelämnas utvärderas uttr mot hela domänen av funktionerna DMin och DMax. Alla fält som ingår i villkor måste också vara ett fält i domän, annars returnerar funktionerna DMin och DMax null.

Kommentarer

Funktionerna DMin och DMax returnerar de lägsta och högsta värden som uppfyller villkor. Om uttr identifierar numeriska data returnerar funktionerna DMin och DMax numeriska värden. Om uttr identifierar strängdata returnerar de strängen som är första eller sista alfabetiskt.

Funktionerna DMin och DMax ignorerar Null-värden i fältet som uttr refererar till. Men om ingen post uppfyller villkor eller om domänen inte innehåller några poster returnerar funktionerna DMin och DMaxnull.

Oavsett om du använder funktionen DMin eller DMax i ett makro, en modul, ett frågeuttryck eller en beräknad kontroll måste du vara noga när du skapar argumentet villkor så att det utvärderas korrekt.

Du kan använda funktionen DMin och DMax för att ange villkor på raden Villkor för en fråga, i ett beräknat fältuttryck i en fråga eller på raden Uppdatera till i en uppdateringsfråga.

Obs

Du kan använda funktionerna DMin och DMax eller Min och Max i ett beräknat fältuttryck för en summafråga. Om du använder funktionen DMin eller DMax beräknas värdena innan data grupperas. Om du använder funktionen Min eller Max grupperas data innan värdena i fältuttrycket beräknas.

Använd funktionen DMin eller DMax i en beräknad kontroll när du behöver ange villkor för att begränsa det dataområde som funktionen utförs på. Om du till exempel vill visa den maximala frakt som debiteras för en order som levereras till Kalifornien anger du egenskapen Kontrollkälla för en textruta till följande uttryck:

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

Om du bara vill hitta det lägsta eller högsta värdet för alla poster i domänen använder du funktionen Min eller Max .

Du kan använda funktionen DMin eller DMax i en modul eller 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å.

Tips

Även om du kan använda funktionen DMin eller DMax för att hitta det lägsta eller högsta värdet från ett fält i en sekundär tabell, kan det vara mer effektivt att skapa en fråga som innehåller de fält som du behöver från båda tabellerna och 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 de här funktionerna. Om du vill att funktionen DMax eller DMin 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.

I följande exempel returneras de lägsta och högsta värdena från fältet Freight för order som levereras till Storbritannien. Domänen är tabellen Orders. Argumentet villkor begränsar den resulterande uppsättningen poster till de poster där ShipCountryRegion är lika med UK.


Dim curX As Currency
Dim curY As Currency
curX = DMin("[Freight]", "Orders", _
    "[ShipCountryRegion] = 'UK'")
curY = DMax("[Freight]", "Orders", _
    "[ShipCountryRegion] = 'UK'")

I nästa exempel innehåller villkorsargumentet det aktuella värdet för en textruta med namnet Orderdatum. Textrutan är bunden till fältet OrderDate i tabellen Orders. Observera att referensen till kontrollen inte omsluts med de dubbla citattecken (") som betecknar strängar. Det säkerställer att det aktuella värdet hämtas från kontrollen varje gång funktionen DMax anropas.


Dim curX As Currency
curX = DMax("[Freight]", "Orders", "[OrderDate] = #" _
    & Forms!Orders!OrderDate & "#")

I nästa exempel innehåller villkorsuttrycket en variabel, dteOrderDate. Observera att nummertecken (#) tas med i stränguttrycker, så att de kommer att omge datumet när strängarna sammanfogas.


Dim dteOrderDate As Date
Dim curX As Currency
dteOrderDate = #03/30/2000#
curX = DMin("[Freight]", "Orders", _
    "[OrderDate] = #" & dteOrderDate & "#")