DMin, DMax, functies
Van toepassing op
U kunt de functies DMin en DMax gebruiken om de minimum- en maximumwaarden in een opgegeven set records (een domein) te bepalen. Gebruik de functies DMin en DMax in een VBA-module (Visual Basic for Applications), een macro, een query-expressie of een berekend besturingselement.
U kunt de functies DBMIN en DBMAX bijvoorbeeld gebruiken in berekende besturingselementen in een rapport om de kleinste en grootste orderbedragen voor een bepaalde klant weer te geven. U kunt de functie DBMIN gebruiken in een query-expressie om alle orders met een grotere korting dan de kleinst mogelijke korting weer te geven.
Syntaxis
DMin(expr, domein [, criteria] )
DMax(expr, domein [, criteria] )
De functies DBMIN en DBMAX hebben de volgende argumenten:
| Argument | Beschrijving |
|---|---|
| expr | Vereist. Een expressie die het veld aangeeft waarvan u de minimum- of maximumwaarde wilt opvragen. 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 functie DMin of DMax wordt uitgevoerd. Criteria is bijvoorbeeld vaak gelijk aan de WHERE-component in een SQL-expressie, zonder het woord WHERE. Als criteria worden weggelaten, evalueren de functies DMin en DMaxexpr op basis van het hele domein. Elk veld dat is opgenomen in criteria moet ook een veld in het domein zijn, anders retourneren de functies DMin en DMax een Null. |
Opmerkingen
De functies DMin en DMax retourneren de minimum- en maximumwaarden die voldoen aan criteria. Als expr numerieke gegevens identificeert, retourneren de functies DMin en DMax numerieke waarden. Als expr tekenreeksgegevens identificeert, retourneren ze de tekenreeks die het eerste of laatste alfabetisch is.
De functies DMin en DMax negeren Null-waarden in het veld waarnaar wordt verwezen door expr. Als er echter geen record voldoet aan criteria of als het domein geen records bevat, retourneren de functies DMin en DMax een Null.
Of u nu de functie DMin of DMax gebruikt in een macro, module, query-expressie of berekend besturingselement, u moet het criteriumargument zorgvuldig samenstellen om ervoor te zorgen dat het correct wordt geëvalueerd.
U kunt de functie DMin en DMax gebruiken om criteria op te geven in de rij Criteria van een query, in een expressie van een berekend veld in een query of in de rij Bijwerken naar van een updatequery.
Opmerking
U kunt de functies DMin en DMax of de functies Min en Max gebruiken in een berekende veldexpressie van een totalenquery. Als u de functie DBMIN of DBMAX gebruikt, worden waarden geëvalueerd voordat de gegevens worden gegroepeerd. Als u de functie Min of Max gebruikt, worden de gegevens gegroepeerd voordat de waarden van de veldexpressie zijn geëvalueerd.
Gebruik de functie DBMIN of DBMAX in een berekend besturingselement wanneer u criteria wilt opgeven om het gegevensbereik te beperken waarop de functie wordt uitgevoerd. Als u bijvoorbeeld de hoogste vrachtkosten wilt weergeven voor een order die is verzonden naar Californië, stelt u de eigenschap Besturingselementbron van een tekstvak in op de volgende expressie:
=DMax("[Freight]", "Orders", "[ShipRegion] = 'CA'")
Als u alleen de minimum- of maximumwaarde van alle records in het domein wilt vinden, gebruikt u de functie Min of Max .
U kunt de functie DBMIN of DBMAX 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 staat van het formulier.
Tip
Hoewel u de functie DMin of DMax kunt gebruiken om de minimum- of maximumwaarde van een veld in een refererende tabel te vinden, is het mogelijk efficiënter om een query te maken die de velden bevat die u nodig hebt uit beide tabellen en uw formulier of rapport op die query te baseren.
Opmerking
Niet-opgeslagen wijzigingen in records in domein worden niet opgenomen wanneer u deze functies gebruikt. Als u wilt dat de functie DMax of DMin is gebaseerd op de gewijzigde waarden, moet u de wijzigingen eerst opslaan door op Record opslaan te klikken 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.
In het volgende voorbeeld vindt u de laagste en hoogste waarden van het veld Vrachtkosten voor orders die naar het Verenigd Koninkrijk zijn verzonden. Het domein is de tabel Orders. Het argument criteria beperkt de resulterende set records tot de records waarvoor ShipCountryRegion gelijk is aan UK.
Dim curX As Currency
Dim curY As Currency
curX = DMin("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK'")
curY = DMax("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK'")
In het volgende voorbeeld bevat het argument criteria de huidige waarde van een tekstvak met de naam OrderDate. Het tekstvak is afhankelijk van het veld Orderdatum in een tabel Orders. De verwijzing naar het besturingselement staat niet tussen de dubbele aanhalingstekens (") waarmee de tekenreeksen worden aangegeven. Dit zorgt ervoor dat telkens wanneer de functie DMax wordt aangeroepen, Access de huidige waarde van het besturingselement ophaalt.
Dim curX As Currency
curX = DMax("[Freight]", "Orders", "[OrderDate] = #" _
& Forms!Orders!OrderDate & "#")
In het volgende voorbeeld bevat de criteriumexpressie een variabele, dteOrderDate. Hekjes (#) worden opgenomen in de reeksexpressie, zodat de datum wordt opgenomen wanneer de tekenreeksen worden samengevoegd.
Dim dteOrderDate As Date
Dim curX As Currency
dteOrderDate = #03/30/2000#
curX = DMin("[Freight]", "Orders", _
"[OrderDate] = #" & dteOrderDate & "#")