Applies ToAccess für Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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 ControlDim strCtl As StringSet ctl = Forms!Employees!LastNamestrCtl = "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 IntegerintState = 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 intIEnd 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 ControlDim varTemp As VariantSet ctl = Forms!Contacts!HelpButtonIf (Left(ctl.OnClick, 1) = "=") Then    varTemp = Eval(Mid(ctl.OnClick,2))Else    DoCmd.RunMacro ctl.OnClickEnd 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.