Applies ToAccess for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Du kan bruke Eval-funksjonen til å evaluere en uttrykk som resulterer i en tekststreng eller en numerisk verdi.

Du kan konstruere en streng og deretter sende den til Eval-funksjonen som om strengen var et faktisk uttrykk. Eval-funksjonen evaluerer strenguttrykk og returnerer verdien. For eksempel returnerer Eval("1 + 1") 2.

Hvis du sender til Eval-funksjonen en streng som inneholder navnet på en funksjon, returnerer Eval-funksjonen returverdien for funksjonen. Eksempel: Eval("Chr$(65)") returnerer «A».

Syntaks

Eval ( stringexpr )

Stringexpr-argumentet er et uttrykk som evalueres til en alfanumerisk tekststreng. Stringexpr kan for eksempel være en funksjon som returnerer en streng eller en numerisk verdi. Eller det kan være en referanse til en kontroll i et skjema. Stringexpr-argumentet må evalueres til en streng eller numerisk verdi. det kan ikke evalueres til en Microsoft Access-objekt.

Obs!: I eksemplene nedenfor vises bruken av denne funksjonen i en VBA-modul (Visual Basic for Applications). Hvis du vil ha mer informasjon om hvordan du arbeider med VBA, velger du Utviklerreferanse fra rullegardinlisten ved siden av Søk og skriver inn ett eller flere søkeord i søkeboksen.

Obs!: Hvis du sender navnet på en funksjon til Eval-funksjonen , må du ta med parenteser etter navnet på funksjonen i stringexpr-argumentet . Eksempel:

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

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

Debug.Print Eval("Date()")

Merknader

Du kan bruke Eval-funksjonen i en beregnet kontroll i et skjema eller en rapport, eller i en makro eller modul. Eval-funksjonen returnerer en variant som enten er en streng eller en numerisk type.

Argumentet stringexpr må være et uttrykk som er lagret i en streng. Hvis du sender til Eval-funksjonen en streng som ikke inneholder et numerisk uttrykk eller et funksjonsnavn, men bare en enkel tekststreng, oppstår en kjøretidsfeil. Eksempel: Eval("Smith") resulterer i en feil.

Du kan bruke Eval-funksjonen til å bestemme verdien som er lagret i verdiegenskapen for en kontroll. Følgende eksempel sender en streng som inneholder en fullstendig referanse til en kontroll til Eval-funksjonen . Den viser deretter gjeldende verdi for kontrollen i en dialogboks.

Dim ctl As ControlDim strCtl As StringSet ctl = Forms!Employees!LastNamestrCtl = "Forms!Employees!LastName"MsgBox ("The current value of " & ctl.Name & _    " is " & Eval(strCtl))

Du kan bruke Eval-funksjonen til å få tilgang til uttrykksoperatorer som vanligvis ikke er tilgjengelige i en Visual Basic for Applications (VBA)-modul. Du kan for eksempel ikke bruke SQL-operatorene Mellom... Og eller I direkte i koden, men du kan bruke dem i et uttrykk sendt til Eval-funksjonen .

Det neste eksemplet bestemmer om verdien for en ShipRegion-kontroll i et ordreskjema er én av flere angitte forkortelser for delstater. Hvis feltet inneholder én av forkortelsene, vil intState være Sann (–1). Vær oppmerksom på at du bruker enkle anførselstegn (') til å inkludere en streng i en annen streng.

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

Spørringseksempler

Expression

Resultater

SELECT Eval("15+3") AS Expr1 FROM ProductSales GROUP BY Eval("15+3");

Evaluerer strengverdien og beregner resultatet. Resultat: 18.

SELECT Eval("Date()+month(date())") AS NewDate FROM ProductSales Group by Eval("Date()+month(date())");

Evaluerer strengverdien, identifiserer funksjonene og kjører dem. Resultat: gjeldende systemdato + gjeldende måned, som vises i kolonnen «NyDato».

VBA-eksempler

Følgende eksempel forutsetter at du har en serie på 50 funksjoner definert som A1, A2 og så videre. Dette eksemplet bruker Eval-funksjonen til å kalle opp hver funksjon i serien.

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

Det neste eksemplet utløser en Klikk-hendelse som om brukeren hadde klikket på en knapp i et skjema. Hvis verdien for knappens OnClick-egenskap begynner med et likhetstegn (=), noe som betyr at den er navnet på en funksjon, kaller Eval-funksjonen funksjonen, som tilsvarer utløser click-hendelsen . Hvis verdien ikke begynner med et likhetstegn, må verdien gi navn til en makro. RunMacro-metoden for DoCmd-objektet kjører den navngitte makroen.

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

Trenger du mer hjelp?

Vil du ha flere alternativer?

Utforsk abonnementsfordeler, bla gjennom opplæringskurs, finn ut hvordan du sikrer enheten og mer.

Fellesskap hjelper deg med å stille og svare på spørsmål, gi tilbakemelding og høre fra eksperter med stor kunnskap.