Funktionerna DMin och DMax

Du kan använda funktionerna DMin och DMax för att fastställa de lägsta och högsta värdena i en angiven uppsättning poster (en domän). Använd funktionerna DMin och DMax i en VBA-modul (Visual Basic for Applications), en 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 där du identifierar ett fält i en tabell eller en fråga, eller ett uttryck där du utför en beräkning på data i 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 det vara en inbyggd eller användardefinierad funktion, men inte någon annan mängdfunktion för domäner eller en SQL-mängdfunktion.

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å. Till exempel motsvarar villkor ofta WHERE-villkoret 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 finns i villkor måste också vara fält i domän – annars returneras ett null-värde av DMin och DMax.


Anmärkningar

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 returneras den sträng som är den första eller sista alfabetisk ordning.

Funktionerna DMin och DMax ignorerar Null-värden i det fält som uttr refererar till. Men om ingen post motsvarar villkor eller om domän inte innehåller några poster, returnerar DMin och DMax värdet Null.

Oavsett om du använder funktionerna DMin och 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 på rätt sätt.

Du kan använda DMin och DMax om du vill ange villkoret i en frågas villkorsrad, i ett beräknat fältuttryck i en fråga eller i raden Ändra till i en uppdateringsfråga.

Obs!: Du kan använda funktionerna DMin och DMax eller Min och Max i ett beräknat fältuttryck i 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 bland alla poster i domän, använder du funktionen Min respektive 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 visa det lägsta respektive högsta värdet för ett fält i en sekundärtabell, kan det vara mer effektivt att skapa en fråga som innehåller de fält du behöver från båda tabellerna 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 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 argumentet villkor det aktuella värdet i en textruta som heter OrderDate. 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. Detta säkerställer att varje gång funktionen DMax anropas hämtar Microsoft Office Access 2007 det aktuella värdet från kontrollen.

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 & "#")
Utöka dina kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Office Insiders

Hade du nytta av den här informationen?

Tack för din feedback!

Tack för din feedback! Det låter som att det kan vara bra att koppla dig till en av våra Office-supportrepresentanter.

×