Beitrag aus SmartTools Access Weekly
Standardwerte für Funktionsparameter festlegen
Access 365 2021 2019 2016 2013 2010
FRAGE Ich verwende eine Funktion, die bis zu 10 Parameter akzeptiert, von denen aber in den meisten Fällen nur die ersten zwei oder drei Parameter verwendet werden. Für die übrigen Parameter sollen Vorgabewerte verwendet werden. Gibt es eine Möglichkeit, automatisch Vorgabewerte für Parameter zuzuordnen? Momentan übergeben ich Parameterwerte "" oder "-1" und helfe mir mit Abfragen der Form If Parameter4 = "" Then Parameter 4 = "XYZ". Dadurch benötigt die Funktion natürlich mehr Zeit, was sich zum Beispiel beim Aufruf aus Schleifen deutlich bemerkbar macht.
H. Gruber
ANTWORT Die Abfragen können Sie sich mit dem Zusatz "Optional" und "As <Datentyp> = <Wert>" bei der Parameterdeklaration sparen. Das könnte zum Beispiel so aussehen:
Function XYZ(Parameter1 As String, _
Parameter2 As Long, _
Parameter3 As Double, _
Optional Parameter4 As String = "ABC", _
Optional Parameter5 As String = "DEF", _
Optional Parameter6 As String = "GHI", _
Optional Parameter7 As String = "JKL", _
Optional Parameter8 As Long = 12345, _
Optional Parameter9 As Boolean = False, _
Optional Parameter10 As Date = "1.1.2020") _
As String
Die ersten drei Parameter müssen angegeben werden, der Rest ist optional und wird ggf. mit den in der Deklaration angegebenen Werten vorbelegt. Um diese Funktion zum Beispiel mit den ersten drei und dem 7. Parameter aufzurufen, verwenden Sie benannte Parameter:
strTmp = XYZ("Text", 0, 7, Parameter7:= "MNO")