Funkcija Eval

Pomoću funkcije Eval možete procijeniti izraz koja rezultira tekstnim nizom ili numeričkim vrijednostima.

Možete konstruirati niz, a zatim ga proslijediti u funkciju Eval kao da je niz stvarni izraz. Funkcija Eval procjenjuje nizovni izraz i vraća vrijednost. Eval("1 + 1") , primjerice, vraća 2.

Ako funkciju Eval preneste na niz koji sadrži naziv funkcije, funkcija Eval vraća povratnu vrijednost funkcije. Eval("Chr$(65)") , primjerice, vraća "A".

Sintaksa

Eval ( stringexpr )

Argument stringexpr izraz je koji se procjenjuje na alfanumerički tekstni niz. Na primjer, stringexpr može biti funkcija koja vraća niz ili numeričku vrijednost. Ili može biti referenca na kontrola na obrascu. Argument stringexpr mora procijeniti niz ili numeričku vrijednost; Ne može procijeniti objekt programa Microsoft Access.

Napomena: Primjeri koji slijede prikazuju korištenje te funkcije u modulu jezika Visual Basic for Applications (VBA). Da biste pronašli dodatne informacije o radu s VBA-om, na padajućem popisu uz stavku Traži odaberite stavku Referenca za razvojne inženjere pa unesite jedan ili više izraza u okvir pretraživanja.

Napomena: Ako u funkciju Eval prosljeđujete naziv funkcije, morate uvrstiti zagradama nakon naziva funkcije u argumentu stringexpr . Na primjer:

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

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

Debug.Print Eval("Date()")

Napomene

Funkciju Eval možete koristiti u izračunata kontrola na obrascu ili izvješću ili u makronaredbi ili u modulu. Funkcija Eval vraća varijantu koja je niz ili numerička vrsta.

Argument stringexpr mora biti izraz koji je pohranjen u nizu. Ako funkcija Eval prođe niz koji ne sadrži numerički izraz ili naziv funkcije, već samo jednostavan tekstni niz, pojavljuje se pogreška pri izvođenju. Eval("Smith") , primjerice, rezultira pogreškom.

Možete koristiti funkciju Eval da biste odredili vrijednost spremljenu u svojstvu vrijednosti kontrole. Sljedeći primjer prelazi niz koji sadrži punu referencu na kontrolu u funkciji Eval . Zatim prikazuje postojeću vrijednost kontrole u dijaloškom okviru.

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

Pomoću funkcije Eval možete pristupati operatorima izraza koji nisu obično dostupni u modulu Visual Basic for Applications (VBA). Na primjer, ne možete koristiti SQL operatore između... I izravno u kodu, no možete ih koristiti u izrazu proslijeđen u funkciju Eval .

U sljedećem se primjeru određuje je li vrijednost kontrole na kartici narudžbe u obrascu narudžbenice jedna od nekoliko navedenih stanja skraćenice. Ako polje sadrži jednu od skraćenice, intState će biti True (– 1). Imajte na čemu da koristite jednostruki navodnike (') da biste uvrstili niz unutar drugog niza.

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

Primjeri upita

Izraz

Rezultati

Odaberite eval ("15 + 3") kao iz grupe ProductSales za eval ("15 + 3");

Vrednuje vrijednost niza i izračunava rezultat. Rezultat: 18.

Odaberite eval ("Datum () + Month (Datum ())") kao NewDate iz grupe ProductSales prema procjeni ("Datum () + Month (Datum ())");

Vrednuje vrijednost niza, identificira funkcije i izvršava ih. Rezultat: sadašnji sistemski datum + sadašnji mjesec, prikazan u stupcu "NewDate".

Primjeri VBA

U sljedećem se primjeru pretpostavlja da imate niz funkcija 50 definiranih kao a1, a2 i tako dalje. U ovom se primjeru funkcija Eval koristi za pozivanje svake funkcije u nizu.

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

Sljedeći primjer aktivira događaj klika kao da je korisnik kliknuo gumb na obrascu. Ako vrijednost svojstva gumba OnClick počinje znakom jednakosti (=), što označava da je to naziv funkcije, funkcija Eval poziva funkciju, što je ekvivalentno pokretom događaja. Ako vrijednost ne započinje znakom jednakosti, vrijednost mora imenovati makronaredbu. Metoda RunMacro objekta DoCmd pokreće imenovanu makronaredbu.

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

Napomena:  Ova je stranica strojno prevedena te može sadržavati gramatičke pogreške ili netočnosti. Naša je namjera da vam ovaj sadržaj bude koristan. Jesu li vam te informacije bile korisne? Kao referencu možete pogledati i članak na engleskom jeziku.​

Proširite svoje vještine korištenja sustava Office
Istražite osposobljavanje

Jesu li vam ove informacije bile korisne?

Hvala vam na povratnim informacijama!

Hvala vam na povratnim informacijama! Čini se da bi vam pomoglo kad bismo vas povezali s nekim od naših agenata podrške za Office.

×