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

Funkcijo Eval lahko uporabite, če želite ovrednotiti izraz, ki vrne besedilni niz ali številsko 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čunani kontrolnik v obrazcu ali poročilu ali v makru ali modulu. Funkcija Eval vrne podatkovni tip Variant, ki je niz ali številski tip.

Argument nizni izraz mora biti izraz, ki je shranjen v nizu. Če v funkcijo Eval podate niz, ki ne vsebuje številskih izrazov ali imen funkcij, ampak le preprost besedilni niz, se Napaka med izvajanjem niz. Če na primer Eval("Smith") prikaže sporočilo o napaki.

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 ControlDim strCtl As StringSet ctl = Forms!Employees!LastNamestrCtl = "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 IntegerintState = Eval("Forms!Orders!ShipRegion In " _    & "('AK', 'CA', 'ID', 'WA', 'MT', 'NM', 'OR')")

Primeri poizvedb

Izraz

Rezultati

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

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

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

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

Ali potrebujete dodatno pomoč?

Ali želite več možnosti?

Raziščite ugodnosti naročnine, prebrskajte izobraževalne tečaje, preberite, kako zaščitite svojo napravo in še več.

Skupnosti vam pomagajo postaviti vprašanja in odgovoriti nanje, posredovati povratne informacije in prisluhniti strokovnjakom z bogatim znanjem.