Beitrag aus SmartTools Access Weekly
Minimum/Maximum für ein Tabellenfeld in Access ermitteln
Access 365 2024 2021 2019 2016 2013 2010
FRAGE Wenn ich in Excel das Minimum oder Maximum aus einer Tabellenzeile ermitteln möchte, lautet die Formel zum Beispiel =Min(A2:H2)
oder =Max(A2:H2)
. Ich bekomme es nicht hin, diese Formel in Access in eine Abfrage zu integrieren. Dort nutze ich Felder der Form "Verbrauch_2022", "Verbrauch_2023", "Verbrauch_2024" und möchte in jedem Datensatz in einem zusätzlichen Feld das Minimum oder Maximum ausgeben lassen.
F. Schröder
ANTWORT Das Problem lässt sich mit Hilfe von VBA-Funktionen lösen, die Sie zunächst in ein Modul kopieren:
Function MinValue(ParamArray arrValues()) As Variant
Dim var As Variant
Dim varMin As Variant
varMin = arrValues(0)
For Each var In arrValues
If Nz(var, 0) < varMin Then
varMin = Nz(var, 0)
End If
Next var
MinValue = varMin
End Function
Function MaxValue(ParamArray arrValues()) As Variant
Dim var As Variant
Dim varMax As Variant
varMax = arrValues(0)
For Each var In arrValues
If Nz(var, 0) > varMax Then
varMax = Nz(var, 0)
End If
Next var
MaxValue = varMax
End Function
In Ihrer Abfrage geben Sie dann in einer leeren Spalte in der Zeile "Feld:" den folgenden Ausdruck ein (jeweils in eine Zeile):
Kleinster Wert: MinValue([Verbrauch_2010], [Verbrauch_2011], [Verbrauch_2012])
oder
Größter Wert: MaxValue([Verbrauch_2010], [Verbrauch_2011], [Verbrauch_2012])
Sie können auch zwei Spalten wie gezeigt einrichten und sich sowohl den kleinsten als auch den größten Wert anzeigen lassen. Die auszuwertenden Felder geben Sie durch Komma getrennt wie oben gezeigt an. Durch die Verwendung von "ParamArray"-Parametern ist bezüglich der Anzahl Felder nach oben keine Grenze gesetzt.