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.