Application.Eval-Methode (Access)
Verwenden Sie die Eval-Funktion , um einen Ausdruck auszuwerten, der zu einer Textzeichenfolge oder einem numerischen Wert führt.
Syntax
Ausdruck. Eval (StringExpr)
expression Eine Variable, die ein Application-Objekt darstellt.
Parameter
Name | Erforderlich/Optional | Datentyp | Beschreibung |
---|---|---|---|
StringExpr | Erforderlich | String | Ein Ausdruck, der eine alphanumerische Textzeichenfolge ergibt. Stringexpr kann beispielsweise eine Funktion sein, die eine Zeichenfolge oder einen numerischen Wert zurückgibt, oder ein Verweis auf ein Steuerelement in einem Formular sein. Das Argument stringexpr muss eine Zeichenfolge oder einen numerischen Wert bereitstellen; es darf kein Microsoft Access-Objekt ergeben. |
Rückgabewert
Variant
Bemerkungen
Sie können z. B. eine Zeichenfolge erstellen und diese dann an die Eval-Funktion übergeben, als handele es sich bei der Zeichenfolge um einen tatsächlichen Ausdruck. Die Eval-Funktion wertet den Zeichenfolgenausdruck aus und gibt dessen Wert zurück. Gibt beispielsweise Eval("1 + 1")
2 zurück.
Wenn Sie der Eval-Funktion eine Zeichenfolge übergeben, die den Namen einer Funktion enthält, gibt Eval den Rückgabewert der Funktion zurück. Gibt beispielsweise Eval("Chr$(65)")
"A" zurück.
Wenn Sie den Namen einer Funktion an die Eval-Funktion übergeben, müssen Sie im Argument stringexpr ein Klammernpaar hinter den Namen der Funktion setzen. Beispiel:
' ShowNames is user-defined function.
Debug.Print Eval("ShowNames()")
Debug.Print Eval("StrComp(""Joe"",""joe"", 1)")
Debug.Print Eval("Date()")
Verwenden Sie die Funktion Eval in einem berechneten Steuerelement auf einem Formular oder Bericht oder in einem Makro oder Modul. Die Eval -Funktion gibt einen Wert vom Datentyp Variant zurück, der entweder eine Zeichenfolge oder ein numerischer Wert ist.
Das Argument stringexpr muss ein Ausdruck sein, der in einer Zeichenfolge gespeichert ist. Wenn Sie der Eval-Funktion eine Zeichenfolge übergeben, die weder einen numerischen Ausdruck noch einen Funktionsnamen, sondern nur eine einfache Textzeichenfolge enthält, tritt ein Laufzeitfehler auf. Führt beispielsweise Eval("Smith")
zu einem Fehler.
Verwenden Sie die Eval-Funktion , um den wert zu bestimmen, der in der Value-Eigenschaft eines Steuerelements gespeichert ist. Im folgenden Beispiel wird eine Zeichenfolge, die einen vollständigen Verweis auf ein Steuerelement enthält, an die Eval -Funktion übergeben. Anschließend wird der aktuelle Wert des Steuerelements in einem Dialogfeld angezeigt.
Dim ctl As Control
Dim strCtl As String
Set ctl = Forms!Employees!LastName
strCtl = "Forms!Employees!LastName"
MsgBox ("The current value of " & ctl.Name & " is " & Eval(strCtl))
Verwenden Sie die Eval-Funktion , um auf Ausdrucksoperatoren zuzugreifen, die in Visual Basic normalerweise nicht verfügbar sind. Sie können z. B. die SQL-Operatoren Between...And oder In nicht direkt in Ihrem Code verwenden, jedoch in einem Ausdruck, der an die Eval-Funktion übergeben wird.
Im nächsten Beispiel wird ermittelt, ob der Wert des Steuerelements "ShipRegion", das zu einem Formular namens "Orders" gehört, einer angegebenen Abkürzung für einen amerikanischen Bundesstaat entspricht. Wenn das Feld eine der Abkürzungen enthält, intState
ist True (1). Sie müssen Hochkommas verwenden, um eine Zeichenfolge innerhalb einer anderen Zeichenfolge anzugeben.
Dim intState As Integer
intState = Eval("Forms!Orders!ShipRegion In " _
& "('AK', 'CA', 'ID', 'WA', 'MT', 'NM', 'OR')")
Beispiel
Im folgenden Beispiel wird davon ausgegangen, dass Eine Reihe von 50 Funktionen als A1, A2 usw. definiert ist. In diesem Beispiel wird die Eval-Funktion verwendet, um jede Funktion in der Reihe aufzurufen.
Sub CallSeries()
Dim intI As Integer
For intI = 1 To 50
Eval("A" & intI & "()")
Next intI
End Sub
Im nächsten Beispiel wird ein Click-Ereignis ausgelöst, als hätte der Benutzer auf eine Schaltfläche in einem Formular geklickt. Wenn der Wert der OnClick-Eigenschaft der Schaltfläche mit einem Gleichheitszeichen (=) beginnt, das angibt, dass es sich um den Namen einer Funktion handelt, ruft die Eval-Funktion die Funktion auf, was dem Auslösen des Click-Ereignisses entspricht. Wenn der Wert nicht mit einem Gleichheitszeichen beginnt, muss der Wert ein Makro benennen. Die RunMacro-Methode des DoCmd-Objekts führt das benannte Makro aus.
Dim ctl As Control
Dim varTemp As Variant
Set ctl = Forms!Contacts!HelpButton
If (Left(ctl.OnClick, 1) = "=") Then
varTemp = Eval(Mid(ctl.OnClick,2))
Else
DoCmd.RunMacro ctl.OnClick
End If
Support und Feedback
Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.