Die Eval-Funktion

Die Eval-Funktion erlaubt das Auswerten von Ausdrücken, die als Parameter an diese Funktion übergeben werden. Damit können Sie sich verschiedene Anwendungszwecke erschließen – zum Beispiel die Eingabe von Berechnungen in einfache Textfelder oder das Ermitteln von Eigenschaften der Benutzeroberflächenelemente ohne Verwendung des VBA-Editors. Dieser Beitrag zeigt die Möglichkeiten der Eval-Funktion auf.

Eval unter VBA

Eine der einfachsten Einsatzmöglichkeiten der Eval-Funktion ist das Berechnen eines Ausdrucks, den Sie als Parameter der Eval-Funktion übergeben. Damit lässt sich dann beispielsweise die Summe aus 1 und 2 ermitteln:

Debug.Print Eval("1+2")
  3

Sie sehen schon am ersten Beispiel, dass wir den zu berechnenden Ausdruck in Anführungszeichen einfassen. Das ist erforderlich, weil die Eval-Funktion eigentlich nur Parameter des Typs String entgegennimmt. Bei als numerisch zu interpretierenden Parameterwerten, zum Beispiel einfache Zahlenwerte wie 12, interpretiert die Funktion dies korrekt. Auch Berechnungen wie 1+2 werden noch ohne Angabe von Anführungszeichen als numerische Werte erkannt und toleriert.

Wenn Sie jedoch beispielsweise Funktionen wie Date() aufrufen, erhalten Sie ohne Anführungszeichen eine Fehlermeldung (Laufzeitfehler 2040, Der von Ihnen eingegebene Ausdruck enthält eine ungültige Zahl.).

Das Berechnen von 1+2 ist nun noch kein Hexenwerk, denn das bekommen Sie auch ohne Eval hin:

Debug.Print 1+2
  3 

Aber vielleicht haben Sie eine Funktion, die zwei Integer-Zahlen addiert:

Public Function Addieren(int1 As Integer,  int2 As Integer) As Integer
     Addieren = int1 + int2
End Function

Dann können Sie diese ebenfalls per Eval aufrufen:

Public Sub EvalAddieren()
     Debug.Print Eval("Addieren(1,2)")
End Sub

Berechnung per InputBox

Wenn Sie dem Benutzer sehr einfach eine Berechnungsmöglichkeit bereitstellen wollen, gelingt dies mit der folgenden Prozedur. Diese fragt per InputBox den zu berechnenden Ausdruck ab und gibt das Ergebnis aus:

Public Sub EvalPerInput()
     Dim strEval As String
     strEval = InputBox("Zu berechnender Ausdruck:")
     MsgBox "Das Ergebnis lautet: " & vbCrLf & vbCrLf  & Eval(strEval)
End Sub

Ein Beispiel für die Nutzung dieser Prozedur sehen Sie in Bild 1.

Eval per InputBox-Funktion

Bild 1: Eval per InputBox-Funktion

Berechnungen in Textfeldern

Eine weitere Möglichkeit für den Einsatz der Eval-Funktion sind Textfelder. Dazu legen wir ein neues, leeres Formular an und fügen diesem ein Textfeld namens txtAusdruck zum Eingeben des zu berechnenden Ausdrucks hinzu. Außerdem legen wir ein zweites Textfeld namens txtErgebnis an. Für das Ereignis Nach Aktualisierung des Textfeldes txtAusdruck hinterlegen wir die folgende Prozedur, welche den Inhalt des Textfeldes txtAusdruck mit der Eval-Funktion berechnet und in das Textfeld txtErgebnis schreibt:

Private Sub txtAusdruck_AfterUpdate()
     Me!txtErgebnis = Eval(Me!txtAusdruck)
End Sub

Damit braucht der Benutzer nur den zu berechnenden Ausdruck in das erste Textfeld einzugeben und die Eingabetaste zu betätigen, um den Ausdruck zu berechnen (siehe Bild 2).

Ausdruck im Textfeld berechnen

Bild 2: Ausdruck im Textfeld berechnen

Zugriff auf Formulare, Steuerelemente und ihre Eigenschaften

Mit diesem Textfeld können Sie auch einfach auf Formulare, Steuerelemente und ihre Eigenschaften zugreifen. Um beispielsweise den Namen des aktiven Steuerelements zu ermitteln, geben Sie den folgenden Ausdruck ein:

Screen.ActiveControl.Name

Das Ergebnis sehen Sie in Bild 3.

Ausgabe des Namens des aktiven Steuerelements

Bild 3: Ausgabe des Namens des aktiven Steuerelements


Nur für Abonnenten

Ab hier wird’s wirklich spannend – der Rest ist exklusiv für Abonnenten.

Mit dem Abo von Access im Unternehmen bekommst du den kompletten Artikel – inklusive vollständigem Code, Beispieldatenbank und Schritt-für-Schritt-Erklärung.

So sparst du dir stundenlanges Herumprobieren, vermeidest teure Fehler in deiner Access-Anwendung und kannst Lösungen direkt in deinem Unternehmen einsetzen, statt nur darüber zu lesen.

Teste Access im Unternehmen jetzt 4 Wochen lang kostenlos: Voller Zugriff auf alle Artikel, Downloads und Beispieldatenbanken. Kein Risiko – wenn es für dich nicht passt, kündigst du einfach innerhalb der ersten vier Wochen.

Bereits Abonnent? Hier einloggen


Kostenlos & unverbindlich

Oder hast Du eine konkrete Frage zu Deiner eigenen Access-Anwendung?

Vielleicht stellt Deine Anwendung Dich vor eine Herausforderung, zu der Du bisher keine Lösung findest. Schlechte Performance, kein ausreichender Zugriffsschutz, Du bist unsicher über Dein Datenmodell oder Dein Code liefert unerklärliche Fehler?

In unserem kostenlosen Access-Audit schaut sich André Minhorst persönlich gemeinsam mit Dir Deine Lösung per Zoom an – und zeigt Dir, wo Datenmodell, VBA-Code, Ergonomie und Sicherheit Optimierungspotenzial bieten.

Jetzt kostenloses Access-Audit anfordern →

Schreibe einen Kommentar