News & Tipps zu Microsoft Access

Lesen Sie hier einige der besten Beiträge aus SmartTools Access Weekly sowie ausgewählte Inhalte anderer E-Mail-Newsletter von SmartTools Publishing rund um Microsoft Access.

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.