Za pomocą funkcji DMin i DMax można określić wartości minimalne i maksymalne w określonym zestawie rekordów ( domena ). Używaj funkcji DMin i DMax w module języka Visual Basic for Applications (VBA), makro, wyrażeniu zapytania lub kontrolka obliczeniowa.
Można na przykład użyć funkcji DMin i DMax w kontrolkach obliczeniowych w raporcie, aby wyświetlić najmniejsze i największe kwoty zamówień dla określonego klienta. Możesz też użyć funkcji DMin w wyrażeniu zapytania, aby wyświetlić wszystkie zamówienia z rabatem większym niż minimalny możliwy rabat.
Składnia
DMin ( wyr ., domena [, kryteria] )
DMax ( wyrażenie ; domena [, kryteria] )
Funkcje DMin i DMax mają następujące argumenty:
Argument |
Opis |
---|---|
wyrażenie |
Argument wymagany. Wyrażenie identyfikujące pole, dla którego ma zostać określona wartość minimalna lub maksymalna. Może to być wyrażenie tekstowe identyfikujące konkretne pole w tabeli lub zapytaniu albo wyrażenie wykonujące obliczenia na danych w tym polu. Wyrażenie może zawierać nazwę pola w tabeli, kontrolkę formularza, stałą lub funkcję. Jeśli wyrażenie zawiera funkcję, może to być funkcja wbudowana lub zdefiniowana przez użytkownika, ale z wyłączeniem funkcji agregującej domeny i funkcji agregującej języka SQL. |
domena |
Argument wymagany. Wyrażenie tekstowe identyfikujące zestaw rekordów stanowiący domenę. Może to być nazwa tabeli lub nazwa zapytania, o ile to zapytanie nie wymaga parametru. |
kryteria |
Argument opcjonalny. Wyrażenie ciągu służące do ograniczania zakresu danych, dla którego wykonywana jest funkcja DMin lub DMax . Na przykład kryteria są często równoważne klauzuli WHERE w wyrażeniu SQL bez wyrazu WHERE. Jeśli argument kryteria zostanie pominięty, funkcje DMin i DMax będą oceniać wyrażenie względem całej domeny. Każde pole zawarte w kryteriach musi być również polem w domenie, w przeciwnym razie funkcje DMin i DMax zwracają wartość Null. |
Uwagi
Funkcje DMin i DMax zwracają wartości minimalne i maksymalne spełniające kryteria. Jeśli wyrażenie zidentyfikuje dane liczbowe, funkcje DMin i DMax zwracają wartości liczbowe. Jeśli wyrażenie zidentyfikuje dane ciągu, zwraca ciąg pierwszy lub ostatni alfabetycznie.
Funkcje DMin i DMax ignorują wartości Null w polu, do którego odwołuje się wyrażenie. Jeśli jednak żaden rekord nie spełnia kryteriów lub domena nie zawiera żadnych rekordów, funkcje DMin i DMax zwracają wartość Null.
Niezależnie od tego, czy używasz funkcji DMin , czy DMax w makkrach, module, wyrażeniu zapytania lub kontrolce obliczeniowej, musisz starannie skonstruować argument kryteria , aby upewnić się, że zostanie on poprawnie oceniony.
Za pomocą funkcji DMin i DMax można określić kryteria w wierszu Kryteria zapytania, w wyrażeniu pola obliczeniowego w zapytaniu lub w wierszu Aktualizacja do zapytanie aktualizujące.
Uwaga: W wyrażeniu pola obliczeniowego zapytanie podsumowujące można używać funkcji DMin i DMax lub funkcji Minimum i Maksimum . Jeśli używasz funkcji DMin lub DMax , wartości są obliczane przed zgrupowanymi danymi. Jeśli używasz funkcji Minimum lub Maksimum , dane są grupowane przed obliczeniem wartości w wyrażeniu pola.
Funkcji DMin lub DMax należy używać w kontrolce obliczeniowej, gdy trzeba określić kryteria, aby ograniczyć zakres danych, dla którego wykonywana jest funkcja. Aby na przykład wyświetlić maksymalną opłatę za fracht za zamówienie wysłane do Kalifornii, ustaw właściwość ŹródłoKontrolki pola tekstowego na następujące wyrażenie:
=DMax("[Freight]", "Orders", "[ShipRegion] = 'CA'")
Jeśli chcesz po prostu znaleźć minimalną lub maksymalną wartość wszystkich rekordów w domenie, użyj funkcji Minimum lub Maksimum .
Funkcji DMin lub DMax można używać w module lub makrem albo w kontrolce obliczeniowej w formularzu, jeśli pole, które ma być wyświetlane, nie znajduje się w źródle rekordów, na którym jest oparty formularz.
Porada
Chociaż można użyć funkcji DMin lub DMax, aby znaleźć minimalną lub maksymalną wartość pola w tabela obca, bardziej efektywne może być utworzenie zapytania zawierającego potrzebne pola z obu tabel i utworzenie formularza lub raportu na podstawie tego zapytania.
Uwaga: Niezapisane zmiany rekordów w domenie nie są uwzględniane podczas korzystania z tych funkcji. Jeśli chcesz, aby funkcja DMax lub DMin była oparta na zmienionych wartościach, należy najpierw zapisać zmiany, klikając pozycję Zapisz rekord w obszarze Rekordy na karcie Dane , przenosząc fokus do innego rekordu lub używając metody aktualizacji .
Przykład
Uwaga: Poniższe przykłady przedstawiają sposób użycia tej funkcji w module języka Visual Basic for Applications (VBA). Aby uzyskać dodatkowe informacje na temat pracy w języku VBA, wybierz pozycję Dokumentacja dewelopera z listy rozwijanej obok przycisku Wyszukaj i wprowadź odpowiednie terminy w polu wyszukiwania.
Poniższy przykład zwraca najniższe i najwyższe wartości z pola Fracht dla zamówień wysłanych do Wielkiej Brytanii. Domena to tabela Zamówienia. Argument kryteria ogranicza wynikowy zestaw rekordów do rekordów, dla których WartośćOdbiorcy Jest równa Uk.
Dim curX As Currency
Dim curY As Currency
curX = DMin("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK'")
curY = DMax("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK'")
W następnym przykładzie argument kryteria zawiera bieżącą wartość pola tekstowego o nazwie DataZamówienia. Pole tekstowe jest powiązane z polem OrderDate w tabeli Zamówienia. Należy pamiętać, że odwołanie do kontrolki nie jest uwzględniane w cudzysłowie ("), które oznaczają ciągi. Zapewnia to, że za każdym razem, gdy funkcja DMax jest wywoływana, program Access uzyskuje bieżącą wartość z kontrolki.
Dim curX As Currency
curX = DMax("[Freight]", "Orders", "[OrderDate] = #" _
& Forms!Orders!OrderDate & "#")
W następnym przykładzie wyrażenie kryterium zawiera zmienną, dteOrderDate. Zwróć uwagę, że znaki numeru (#) są zawarte w wyrażeniu ciągu, dzięki czemu po połączeniu ciągów zostaną one ujęte w datę.
Dim dteOrderDate As Date
Dim curX As Currency
dteOrderDate = #03/30/2000#
curX = DMin("[Freight]", "Orders", _
"[OrderDate] = #" & dteOrderDate & "#")