Eval, funksjon

Du kan bruke Eval -funksjonen til å evaluere et uttrykk som resulterer i en tekst streng 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. Eval("1 + 1") returnerer for eksempel 2.

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

Syntaks

Eval ( stringexpr )

Stringexpr -argumentet er et uttrykk som evalueres til en alfanumerisk tekst streng. 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å evaluere til en streng eller en 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 inkludere 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 funksjons navn, men bare en enkel tekst streng, oppstår det en kjøretidsfeil. Eval("Smith") resulterer for eksempel i en feil.

Du kan bruke Eval -funksjonen til å bestemme verdien som er lagret i Value -egenskapen for en kontroll. Følgende eksempel sender en streng som inneholder en fullstendig referanse til en kontroll, til Eval -funksjonen. Deretter vises gjeldende verdi for kontrollen i en dialog boks.

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 bruke Eval -funksjonen til å få tilgang til uttrykks operatører som vanligvis ikke er tilgjengelige i en VBA-modul (Visual Basic for Applications). Du kan for eksempel ikke bruke SQL-operatorene mellom... Og eller direkte i koden, men du kan bruke dem i et uttrykk som sendes til Eval -funksjonen.

Det neste eksemplet bestemmer om verdien for en feltet ShipRegion-kontroll i et ordre skjema er en av flere angitte tilstands forkortelser. Hvis feltet inneholder en av forkortelsene, vil intState være sann (– 1). Legg merke til at du bruker enkle anførsels tegn (') til å inkludere en streng i en annen streng.

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

Spørrings eksempler

Uttrykk

Resultater

Velg eval ("15 + 3") som Uttr1 fra ProductSales GROUP BY eval ("15 + 3");

Evaluerer streng verdien og beregner resultatet. Resultat: 18.

Velg eval ("Date () + Month (Date ())") AS NewDate FROM ProductSales Group by eval ("Date () + Month (Date ())");

Evaluerer streng verdien, identifiserer funksjonene og utfører dem. Resultat: gjeldende system dato + gjeldende måned, som vises i kolonnen "NewDate".

Eksempler på VBA

Følgende eksempel antar at du har en serie med 50-funksjoner definert som a1, a2 og så videre. I dette eksemplet brukes Eval -funksjonen til å ringe hver funksjon i serien.

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

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

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

Obs!:  Denne siden er oversatt gjennom automatisering og kan inneholde grammatiske feil eller unøyaktigheter. Formålet vårt er at innholdet skal være nyttig for deg. Kan du fortelle oss om informasjonen var nyttig? Her er den engelske artikkelen for referanse.

Bli bedre på Office
Utforsk opplæring
Vær først ute med de nye funksjonene
Bli med i Office Insiders

Var denne informasjonen nyttig?

Takk for tilbakemeldingen!

Takk for tilbakemeldingen! Det høres ut som det kan være lurt å sette deg i kontakt med én av våre Office-kundestøtteagenter.

×