Eval-Funktion (Auswerten)

Wichtig :  Dieser Artikel wurde maschinell übersetzt. Bitte beachten Sie den Haftungsausschluss. Die englische Version des Artikels ist als Referenz hier verfügbar: hier.

Um einen Ausdruck auszuwerten, der zu einer Textzeichenfolge oder einem numerischen Wert führt, können Sie die Eval-Funktion verwenden.

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

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

Syntax

Auswerten ( Zeichenfolgenausdruck )

Das Argument stringexpr ist ein Ausdruck, der in eine alphanumerische Textzeichenfolge ausgewertet wird. stringexpr kann z. B. eine Funktion sein, die eine Zeichenfolge oder einen numerischen Wert ausgibt. Oder es kann ein Verweis auf ein Steuerelement in einem Formular sein. Das Argument stringexpr muss in eine Zeichenfolge oder in einen numerischen Wert ausgewertet werden. Es kann nicht in 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 den Namen der Funktion im Argument stringexpr in Klammern einschließen. 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 Funktion Auswerten in Berechnetes Steuerelement auf einem Formular oder Bericht oder in einem Makro oder Modul verwenden. Gibt die Funktion Auswerten einer des Typs Variant, die entweder eine Zeichenfolge oder einen numerischen Typ ist.

Das Argument stringexpr muss ein Ausdruck sein, der in einer Zeichenfolge gespeichert wird. Es tritt ein Laufzeitfehler auf, wenn Sie eine Zeichenfolge, die keinen numerischen Ausdruck enthält, an die Eval-Funktion übergeben, die keinen numerischen Ausdruck oder keinen Funktionsnamen enthält. Beispielsweise führt Eval("Smith") zu einem Fehler.

Sie können die Eval-Funktion verwenden, um den Wert zu 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. 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))

Sie können die Eval-Funktion verwenden, um auf Ausdrucksoperatoren zuzugreifen, die normalerweise in einem Modul für Visual Basic für Applikationen nicht verfügbar sind. Beispielsweise können Sie die SQL-Operatoren Between...And oder In nicht verwenden, aber Sie können sie in einem Ausdruck verwenden, der an die Eval-Funktion übergeben wird.

Im nächsten Beispiel wird ermittelt, ob der Wert eines Vertriebsregion-Steuerelements eines von mehreren Bundeslandabkürzungen ist. Wenn das Feld eine der Abkürzungen enthält, wird intState auf Wahr (–1) festgelegt. Um eine Zeichenfolge innerhalb einer anderen Zeichenfolge zu verwenden, sollten Sie einfache Anführungszeichen (') verwenden.

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 als A1, A2 usw. definiert haben. Dieses Beispiel verwendet die Eval-Funktion zum Aufrufen der einzelnen Funktionen in der Reihe.

Sub CallSeries()
Dim intI As Integer
For intI = 1 To 50
Eval("A" & intI & "()")
Next intI
End Sub

Das nächste Beispiel löst ein Click-Ereignis aus, als ob der Benutzer auf eine Schaltfläche in einem Formular geklickt hat. Wenn der Wert der OnClick-Eigenschaft der Schaltfläche mit einem Gleichheitszeichen (=) beginnt, was darauf hinweist, dass es sich um den Namen einer Funktion handelt, ruft die Eval-Funktion die Funktion auf, die dem Click-Ereignis entspricht. Der Wert muss ein Makro benennen, wenn der Wert nicht mit einem Gleichheitszeichen beginnt. Das benannte Makro wird in der AusführenMakro-Methode des DoCmd-Objekts ausgeführt.

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

Hinweis : Haftungsausschluss für maschinelle Übersetzungen: Dieser Artikel wurde mithilfe eines Computersystems und ohne jegliche Bearbeitung durch Personen übersetzt. Microsoft bietet solche maschinellen Übersetzungen als Hilfestellung für Benutzer ohne Englischkenntnisse an, damit Sie von den Informationen zu Produkten, Diensten und Technologien von Microsoft profitieren können. Da es sich bei diesem Artikel um eine maschinelle Übersetzung handelt, enthält er möglicherweise Fehler in Bezug auf (Fach-)Terminologie, Syntax und/oder Grammatik.

Teilen Facebook Facebook Twitter Twitter E-Mail E-Mail

War diese Information hilfreich?

Sehr gut. Noch anderes Feedback?

Was können wir verbessern?

Vielen Dank für Ihr Feedback!

×