Eval, funksjon

Viktig: Denne artikkelen er maskinoversatt, se ansvarsfraskrivelsen. Du finner den engelske versjonen av artikkelen her som referanse.

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

Du kan lage en streng og sende den til Eval -funksjonen som om strengen var et virkelig 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 funksjonen Eval verdien som returneres av funksjonen. Eval("Chr$(65)") returnerer for eksempel "A".

Syntaks

Eval ( strenguttrykk )

Strenguttrykk -argumentet er et uttrykk som evalueres til en alfanumerisk tekststreng. Strenguttrykk 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. Argumentet strenguttrykk må evaluere til en streng eller en numerisk verdi. Det kan ikke evalueres til et Microsoft Access-objekt.

Merknad: 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.

Merknad: Hvis du sender navnet på en funksjon til Eval -funksjonen, må du inkludere parenteser etter navnet på funksjonen i argumentet strenguttrykk . 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 rapport eller i en makro eller modul. Eval -funksjonen returnerer en Variant som er en streng eller en numerisk verdi.

Argumentet strenguttrykk 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 det en kjøretidsfeil. Hvis du for eksempel resulterer Eval("Smith") 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 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 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 bruke SQL-operatorene mellom... Og eller i direkte i koden, men du kan bruke dem i et uttrykk som sendes til Eval -funksjonen.

I eksemplet nedenfor avgjør om verdien av en ShipRegion-kontroll i et ordreskjema er én av flere angitt tilstand forkortelser. Hvis feltet inneholder én av forkortelsene, være intStateSann (– 1). Vær oppmerksom på at du bruker enkle anførselstegn (') for å inkludere en tekststreng inni en annen streng.

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

Eksempel

Eksemplet nedenfor forutsetter at du har en serie med 50 funksjoner som er definert som A1, A2 og så videre. Dette eksemplet bruker Eval -funksjonen til å kalle 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 hendelsen som om brukeren hadde klikket en knapp i et skjema. Hvis verdien til knappens OnClick , egenskap starter med et likhetstegn (=), kaller angir at det er navnet på en funksjon, Eval funksjonen funksjonen, som tilsvarer det å utløse Klikk hendelsen. Hvis verdien ikke starter med et likhetstegn, må verdien navnet en makro. KjørMakro -metoden for objektet DoCmd kjører navngitt 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

Merknad: Ansvarsfraskrivelse for maskinoversettelse: Denne artikkelen er oversatt av et datasystem i stedet for en oversetter. Microsoft tilbyr disse maskinoversettelsene slik at brukere som ikke snakker engelsk, får tilgang til innhold om Microsoft-produkter, -tjenester og –teknologier. Ettersom artikkelen er maskinoversatt, kan den inneholde feil i vokabular, syntaks eller grammatikk.

Utvid ferdighetene dine
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.

×