Bei Microsoft anmelden
Melden Sie sich an, oder erstellen Sie ein Konto.
Hallo,
Wählen Sie ein anderes Konto aus.
Sie haben mehrere Konten.
Wählen Sie das Konto aus, mit dem Sie sich anmelden möchten.

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')")

Abfragebeispiele

Ausdruck

Ergebnisse

SELECT Eval("15+3") AS Expr1 FROM ProductSales GROUP BY Eval("15+3");

Wertet den Zeichenfolgenwert aus und berechnet das Ergebnis. Ergebnis: 18.

SELECT Eval("Date()+month(date(date())") AS NewDate FROM ProductSales Group by Eval("Date()+month(date())");

Wertet den Zeichenfolgenwert aus, identifiziert die Funktionen und führt sie aus. Ergebnis: aktuelles Systemdatum + aktueller Monat, angezeigt in der Spalte "NewDate".

VBA-Beispiele

Im folgenden Beispiel wird davon ausgegangen, dass Sie eine Reihe von 50 Funktionen als A1, A2 usw. definiert haben. 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, 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

Benötigen Sie weitere Hilfe?

Möchten Sie weitere Optionen?

Erkunden Sie die Abonnementvorteile, durchsuchen Sie Trainingskurse, erfahren Sie, wie Sie Ihr Gerät schützen und vieles mehr.

In den Communities können Sie Fragen stellen und beantworten, Feedback geben und von Experten mit umfassendem Wissen hören.

War diese Information hilfreich?

Wie zufrieden sind Sie mit der Sprachqualität?
Was hat Ihre Erfahrung beeinflusst?
Wenn Sie auf "Absenden" klicken, wird Ihr Feedback zur Verbesserung von Produkten und Diensten von Microsoft verwendet. Ihr IT-Administrator kann diese Daten sammeln. Datenschutzbestimmungen.

Vielen Dank für Ihr Feedback!

×