Funkcija Eval

Funkcijo Eval lahko uporabite za ocenjevanje izraza, katerega rezultat je besedilni niz ali številska vrednost.

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čunanem kontrolniku v obrazcu ali poročilu ali v makru ali modulu. Funkcija Eval vrne Variant, ki je bodisi niz ali številski tip.

Argument nizni izraz mora biti izraz, ki je shranjen v nizu. Če v funkcijo Eval podate niz, ki ne vsebuje številskega izraza ali imena funkcije, ampak preprosto besedilni niz, pride do napake med izvajanjem. Na primer, Eval("Smith") vrne 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')")

Primer

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
Razširite svoja znanja
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.

×