Funkcija Eval

S funkcijo eval lahko ocenite izraz, ki je rezultat besedilnega niza ali številske vrednosti.

Ustvarite lahko niz in ga nato podate v funkcijo Eval, kot bi bil niz dejanski izraz. Funkcija Eval ovrednoti izraz niza in vrne njegovo vrednost. Na primer, Eval("1 + 1") vrne 2.

Če v funkcijo Eval podate niz, ki vsebuje ime funkcije, funkcija Eval vrne vrnjeno vrednost funkcije. Na primer, Eval("Chr$(65)") vrne »A«.

Sintaksa

Eval ( nizni izraz )

Argument nizni izraz je izraz, ki je ovrednoten kot alfanumerični besedilni niz. Na primer nizni izraz je lahko funkcija, ki vrne niz ali številsko vrednost. Ali je lahko sklic na kontrolnik v obrazcu. Argument nizni izraz mora biti ovrednoten na niz ali številsko vrednost; ne more biti ovrednoten na Microsoft Accessov predmet.

Opomba: V spodnjih primerih je prikazana uporaba te funkcije v modulu Visual Basic for Applications (VBA). Če želite več informacij o delu z modulom VBA, izberite Vsebina za razvijalce na spustnem seznamu ob možnosti Iskanje in v iskalno polje vnesite enega ali več izrazov.

Opomba: Če v funkcijo Eval podajate ime funkcije, morate za imenom funkcije v argumentu nizni izraz vključiti oklepaje. Na primer:

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

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

Debug.Print Eval("Date()")

Pripombe

Funkcijo eval lahko uporabite v izračunani kontrolnik v obrazcu ali poročilu ali v makru ali modulu. Funkcija eval vrne različico, ki je bodisi niz bodisi številska vrsta.

Argument» stringexpr «mora biti izraz, ki je shranjen v nizu. Če preidete na funkcijo eval niz, ki ne vsebuje številskega izraza ali imena funkcije, a le navaden besedilni niz, se pojavi Napaka med izvajanjem. Eval("Smith") na primer povzroči napako.

Funkcijo Eval lahko uporabite za določanje vrednosti, shranjene v lastnosti Value za kontrolnik. V spodnjem primeru je podan niz, ki vsebuje popoln sklic na kontrolnik v funkciji Eval. Nato se prikaže vrednost kontrolnika v pogovornem oknu.

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

Funkcijo Eval lahko uporabite za dostop do operatorjev izraza, ki niso običajno na voljo v modulu Visual Basic for Applications (VBA). Na primer, operatorjev SQL Between...And ali In ne morete uporabiti neposredno v kodi, vendar jih lahko uporabite v izrazu, podanem v funkciji Eval.

V naslednjem primeru se ugotavlja, ali je vrednost kontrolnika ShipRegion v obrazcu »Naročila« ena od več določenih kratic držav. Če polje vsebuje eno od kratic, bo intStateTrue (–1). Pri vključevanju niza v drug niz ne pozabite uporabiti enojnih narekovajev (').

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

Primeri poizvedbe

Izraz

Rezultati

Izberite eval ("15 + 3") kot Izr1 iz ProductSales GROUP BY eval ("15 + 3");

Ovrednoti vrednost niza in izračuna rezultat. Rezultat: 18.

Izberite eval ("datum () + mesec (datum ())") kot NewDate iz ProductSales Group by eval ("datum () + mesec (datum ())");

Ovrednoti vrednost niza, prepozna funkcije in jih izvede. Rezultat: trenutni sistemski datum + trenutni mesec, prikazan v stolpcu» NewDate «.

Primeri VBA

Naslednji primer predvideva, da imate niz 50 funkcij, določenih kot A1, A2 in tako naprej. Ta primer uporablja funkcijo Eval za priklic vseh funkcij v nizu.

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

Naslednji primer sproži dogodek Click, kot bi uporabnik kliknil gumb v obrazcu. Če se vrednost lastnosti OnClick gumba začne z enačajem (=), ki označuje, da gre za ime funkcije, funkcija Eval prikliče funkcijo, ki je enaka sproženju dogodka Click. Če se vrednost ne začne z enačajem, mora vrednost imenovati makro. Metoda RunMacro predmeta DoCmd zažene imenovani 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

Opomba:  Ta stran je bila prevedena z avtomatizacijo in lahko vsebuje slovnične napake ali nepravilnosti. Želimo, da bi bila ta vsebina za vas uporabna. Ali nam lahko sporočite, če so bile te informacije uporabne? Tukaj je referenčni članek v angleščini.

Razširite poznavanje Officea
Oglejte si izobraževanje
Prvi dobite nove funkcije
Pridružite se programu Office Insider

Vam je bila informacija v pomoč?

Zahvaljujemo se vam za povratne informacije.

Zahvaljujemo se vam za povratne informacije. Videti je, da bi vam prišla prav pomoč enega od naših Officeovih agentov za podporo.

×