Funktionen Eval

Vigtigt: Denne artikel er maskinoversat. Se ansvarsfraskrivelsen. Du kan finde den engelske version af denne artikel her til din orientering.

Du kan bruge funktionen Eval til at evaluere et udtryk, der resulterer i en tekststreng eller en numerisk værdi.

Du kan oprette en streng og derefter overføre den til funktionen Eval, som om strengen var et rigtigt udtryk. Med funktionen Eval evalueres strengudtryk, og dets værdi returneres. F.eks. returnerer Eval("1 + 1") 2.

Hvis du til funktionen Eval overfører en streng, der indeholder navnet på en funktion, returnerer funktionen Eval funktionens returnerede værdi. F.eks. returnerer Eval("Chr$(65)") "A".

Syntaks

Eval ( strengudtryk )

Argumentet strengudtryk er et udtryk, der evaluerer til en alfanumerisk tekststreng. F.eks. kan strengudtryk være en funktion, der returnerer en streng eller en numerisk værdi. Eller det kan være en henvisning til et kontrolelement i en formular. Argumentet strengudtryk skal evaluere til en streng eller en numerisk værdi. Det kan ikke evaluere til et Microsoft Access-objekt.

Bemærk: Følgende eksempler demonstrerer brugen af denne funktion i et VBA-modul (Visual Basic for Applications). Hvis du vil have mere at vide om at arbejde med VBA, skal du vælge Udviklerreference på rullelisten ud for Søg og skrive ét eller flere ord i søgefeltet.

Bemærk: Hvis du overfører navnet på en funktion til funktionen Eval, skal du indsætte parenteser efter navnet på funktionen i argumentet strengudtryk. F.eks.:

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

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

Debug.Print Eval("Date()")

Bemærkninger

Du kan bruge funktionen Eval i en beregnet kontrolelement på en formular eller rapport eller i en makro eller modul. Funktionen Eval returnerer en Variant, der er en streng eller en numerisk type.

Argumentet strengudtryk skal være et udtryk, som lagres i en streng. Hvis du til funktionen Eval overfører en streng, der ikke indeholder et numerisk udtryk eller et funktionsnavn, men kun en enkel strengtekst, opstår der en kørselsfejl. F.eks. resulterer Eval("Smith") i en fejl.

Du kan bruge funktionen Eval til at fastslå den værdi, der er lagret i egenskaben Værdi for et kontrolelement. I det følgende eksempel overføres der en streng, som indeholder en fuld henvisning til et kontrolelement, til funktionen Eval. Derefter vises den aktuelle værdi for kontrolelementet i en dialogboks.

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

Du kan bruge funktionen Eval til at få adgang til udtryksoperatorer, som normalt ikke er tilgængelige i VBA-modulet (Visual Basic for Applications). Du kan f.eks. ikke bruge SQL-operatoren Between...And eller In direkt i din kode, men du kan bruge dem i et udtryk, der overføres til Eval-funktionen.

Det næste eksempel fastslår, om værdien af kontrolelementet Modtagerområde i formularen Ordre er en af flere angivne statsforkortelser. Hvis feltet indeholder én af forkortelserne, vil intState være Sand (–1). Bemærk, at du bruger enkelte anførselstegn (') for at inkludere en streng i en anden streng.

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

Eksempel

I det følgende eksempel antages det, at du har en serie på 50 funktioner, som er defineret som A1, A2 osv. I dette eksempel anvendes funktionen Eval til at kalde hver funktion i serien.

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

Det næste eksempel udløser en klikhændelse, som om brugeren havde klikket på en knap i en formuler. Hvis værdien af knappens egenskab VedKlik begynder med et lighedstegn (=), hvilket angiver, at det er navnet på en funktion, kalder funktionen Eval den funktion, som svarer til at udløse klikhændelsen. Hvis værdien ikke begynder med et lighedstegn, skal værdien angive navnet på en makro. Metoden AfspilMakro for objektet DoCmd afspiller den navngivne makro.

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

Bemærk: Ansvarsfraskrivelse for maskinoversættelse: Denne artikel er blevet oversat af et computersystem uden menneskelig indgriben. Microsoft tilbyder disse maskinoversættelse for at hjælpe ikke-engelsktalende brugere til at kunne nyde indhold om Microsofts produkter, tjenester og teknologier. Da artiklen er maskinoversat, kan den indeholde forkerte ord eller syntaks- eller grammatikfejl.

Del Facebook Facebook Twitter Twitter Mail Mail

Var disse oplysninger nyttige?

Fantastisk! Har du mere feedback?

Hvordan kan vi forbedre det?

Tak for din feedback!

×