Office
Aanmelden

Eval, functie

U kunt de functie Eval gebruiken om een expressie te evalueren die resulteert in een tekenreeks of een numerieke waarde.

U kunt een tekenreeks samenstellen en deze vervolgens doorgeven aan de functie Eval alsof de tekenreeks een expressie is. De functie Eval evalueert de reeksexpressie en retourneert het resultaat. Eval("1 + 1") geeft bijvoorbeeld 2 als resultaat.

Als u aan de functie Eval een tekenreeks doorgeeft die de naam van een functie bevat, geeft Eval de retourwaarde van de functie als resultaat. Eval("Chr$(65)") geeft bijvoorbeeld 'A' als resultaat.

Syntaxis

Eval ( tekenreeksexpressie )

Het argument tekenreeksexpressie is een expressie die een alfanumerieke tekenreeks oplevert. U kunt voor tekenreeksexpressie bijvoorbeeld een functie opgeven die een tekenreeks of een numerieke waarde retourneert. Het argument kan echter ook een verwijzing zijn naar een besturingselement in een formulier. Het argument tekenreeksexpressie moet een tekenreeks of een numerieke waarde als resultaat geven. Het resultaat mag niet een Microsoft Access-object zijn.

Opmerking: In de volgende voorbeelden wordt het gebruik van deze functie in een VBA-module (Visual Basic for Applications) toegelicht. Meer informatie over het werken met VBA vindt u door in de vervolgkeuzelijst naast Zoeken de optie Referentie voor ontwikkelaars te selecteren en een of meer termen in het zoekvenster te typen.

Opmerking: Als u de naam van een functie doorgeeft aan de functie Eval, moet u haakjes toevoegen na de naam van de functie in het argument tekenreeksexpressie. Bijvoorbeeld:

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

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

Debug.Print Eval("Date()")

Opmerkingen

U kunt de functie Eval gebruiken in een berekend besturingselement in een formulier of rapport, of in een macro of module. De functie Eval retourneert een waarde van het type Variant die bestaat uit een tekenreeks of een numerieke waarde.

Het argument tekenreeksexpressie moet een expressie zijn die is opgeslagen in een tekenreeks. Als u de functie Eval doorgeeft aan een tekenreeks die geen numerieke expressie of een functienaam bevat maar alleen een eenvoudige tekenreeks, treedt er een runtimefout op. De tekenreeks Eval("Smith") veroorzaakt bijvoorbeeld een fout.

U kunt de functie Eval gebruiken om de waarde op te vragen die is opgeslagen in de eigenschap Value van een besturingselement. In het volgende voorbeeld wordt een tekenreeks met een volledige verwijzing naar een besturingselement doorgegeven aan de functie Eval. Het resultaat is dat de huidige waarde van het besturingselement wordt weergegeven in een dialoogvenster.

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

U kunt de functie Eval gebruiken om toegang te krijgen tot expressie-operatoren die anders niet beschikbaar zijn in een VBA-module (Visual Basic for Applications). Zo kunt u de SQL-operatoren Between...And of In niet rechtstreeks in code gebruiken, maar u kunt ze wel gebruiken in een expressie die wordt doorgegeven aan de functie Eval.

In het volgende voorbeeld wordt gekeken of de waarde van een besturingselement ShipRegion in het formulier Orders overeenkomt met een van de verschillende statuscodes. Als het veld een van de codes bevat, wordt intState ingesteld op True (-1). U moet enkele aanhalingstekens (') gebruiken als u een tekenreeks binnen een andere tekenreeks wilt plaatsen.

Dim intState As Integer
intState = Eval("Forms!Orders!ShipRegion In " _
& "('AK', 'CA', 'ID', 'WA', 'MT', 'NM', 'OR')")

Voorbeeld

In het volgende voorbeeld wordt ervan uitgegaan dat u een reeks van 50 functies hebt gedefinieerd met namen zoals A1, A2, enzovoort. In dit voorbeeld wordt de functie Eval gebruikt om elke functie in de reeks aan te roepen.

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

In het volgende voorbeeld wordt een gebeurtenis Click geactiveerd alsof een gebruiker op een knop in een formulier heeft geklikt. Als de waarde van de eigenschap OnClick van de knop begint met een gelijkteken (=), wat aangeeft dat het de naam van een functie is, wordt de functie aangeroepen door Eval, wat overeenkomt met het activeren van de gebeurtenis Click. Als de waarde niet met een gelijkteken begint, is de waarde de naam van een macro. De macro met die naam wordt dan uitgevoerd via de methode RunMacro van het DoCmd-object.

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
Uw Office-vaardigheden uitbreiden
Training verkennen
Als eerste nieuwe functies krijgen
Deelnemen aan Office Insiders

Was deze informatie nuttig?

Bedankt voor uw feedback.

Hartelijk dank voor uw feedback! Het lijkt ons een goed idee om u in contact te brengen met een van onze Office-ondersteuningsagents.

×