Eval-Funktion (Auswerten)

Sie können die Eval-Funktion verwenden, um einen Ausdruck auszuwerten, der eine Textzeichenfolge oder einen numerischen Wert als Ergebnis hat.

Sie können z. B. eine Zeichenfolge erstellen und diese an die Eval-Funktion übergeben, als wäre die Zeichenfolge ein tatsächlicher Ausdruck. Die Eval-Funktion wertet den Zeichenfolgenausdruck und gibt dessen Wert zurück. Beispielsweise gibt Eval("1 + 1") den Wert "2" zurück.

Wenn Sie an die Eval-Funktion eine Zeichenfolge übergeben, die den Namen einer Funktion enthält, gibt die Eval-Funktion den Rückgabewert der Funktion zurück. Beispielsweise gibt Eval("Chr$(65)") den Buchstaben "A" zurück.

Syntax

Eval ( Zeichenfolgenausdruck )

Das Argument Zeichenfolgenausdruck ist ein Ausdruck, der zu einer alphanumerische Textzeichenfolge ausgewertet wird. Beispielsweise kann Zeichenfolgenausdruck eine Funktion sein, die eine Zeichenfolge oder einen numerischen Wert zurückgibt. Das Argument kann aber auch ein Verweis auf ein Steuerelement auf einem Formular sein. Das Argument Zeichenfolgenausdruck muss ausgewertet eine Zeichenfolge oder ein numerischer Wert sein; es kann nicht als ein Microsoft Access-Objekt ausgewertet werden.

Hinweis : Die folgenden Beispiele zeigen die Verwendung dieser Funktion in einem VBA-Modul (Visual Basic for Applications). Wenn Sie weitere Informationen zum Arbeiten mit VBA wünschen, wählen Sie Entwicklerreferenz in der Dropdownliste neben Suchen aus, und geben Sie einen oder mehrere Begriffe in das Suchfeld ein.

Hinweis : Wenn Sie den Namen einer Funktion an die Eval-Funktion übergeben, müssen Sie im Argument Zeichenfolgenausdruck Klammern hinter dem Namen der Funktion einfügen. Beispiel:

' ShowNames is user-defined function.
Debug.Print Eval("ShowNames()")

Debug.Print Eval("StrComp(""Joe"",""joe"", 1)")

Debug.Print Eval("Date()")

Hinweise

Sie können die Eval-Funktion in einem Berechnetes Steuerelement auf einem Formular oder Bericht oder in einem Makro oder Modul verwenden. Die Eval-Funktion gibt einen Variant-Wert zurück, der entweder eine Zeichenfolge oder ein Wert mit numerischem Typ ist.

Das Argument Zeichenfolgenausdruck muss ein Ausdruck sein, der in einer Zeichenfolge gespeichert ist. Wenn Sie an die Eval-Funktion eine Zeichenfolge übergeben, die keinen numerischen Ausdruck oder Funktionsnamen, sondern nur eine einfache Textzeichenfolge enthält, tritt ein Laufzeitfehler auf. Eval("Smith") führt z. B. zu einem Fehler.

Mit der Eval-Funktion können Sie den Wert ermitteln, 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. Der aktuelle Wert des Steuerelements wird dann 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))

Sie können über die Eval-Funktion auf Ausdrucksoperatoren zugreifen, die normalerweise nicht in einem VBA-Modul (Visual Basic for Applications) verfügbar sind. Beispielsweise können Sie die SQL-Operatoren Between...And und In nicht direkt in Code verwenden, Sie können sie aber in einem Ausdruck verwenden, der an die Eval-Funktion übergeben wird.

Im nächsten Beispiel wird ermittelt, ob der Wert des Steuerelements "ShipRegion" auf dem Formular "Orders" mit einer der angegebenen Abkürzungen für Bundesstaaten übereinstimmt. Enthält das Feld eine der Abkürzungen, hat intState den Wert True (–1). Zum Einfügen von einer Zeichenfolge in eine andere verwenden Sie einfache Anführungszeichen (').

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 Sie eine Reihe von 50 Funktionen haben, die als A1, A2 usw. definiert sind. In diesem Beispiel wird die Eval-Funktion verwendet, um jede Funktion in dieser 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, so, als hätte der Benutzer auf eine Schaltfläche auf einem Formular geklickt. Beginnt der Wert der OnClick-Eigenschaft der Schaltfläche mit einem Gleichheitszeichen (=), wodurch gekennzeichnet ist, dass er der Name eine Funktion ist, ruft die Eval-Funktion die Funktion auf, die zu einem Auslösen des Click-Ereignisses gehört. Beginnt der Wert nicht mit einem Gleichheitszeichen, muss er der Name eines Makros sein. Die RunMacro-Methode des DoCmd-Objekts führt das angegebene 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
Ihre Fähigkeiten erweitern
Schulung erkunden
Neue Funktionen als Erster erhalten
An Office Insider teilnehmen

War diese Information hilfreich?

Vielen Dank für Ihr Feedback!

Vielen Dank für Ihr Feedback. Es klingt, als ob es hilfreich sein könnte, Sie mit einem unserer Office-Supportmitarbeiter zu verbinden.

×