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

Funkciju Eval možete da koristite za procenu izraz koja kao rezultat daje tekstualnu nisku ili numeričku vrednost.

Nisku možete da konstruišete, a zatim da je dodate u funkciju Eval kao da je niska stvarni izraz. Funkcija Evalizraz niske vrednost. Na primer, Eval("1 + 1") 2.

Ako funkciji Eval dodate nisku koja sadrži ime funkcije, funkcija Eval daje povratnu vrednost funkcije. Na primer, Eval("Chr$(65)") daje "A".

Sintaksa

Eval ( stringexpr )

Argument stringexpr je izraz koji daje alfanumeričku tekstualnu nisku. Na primer, izraz niske može biti funkcija koja daje nisku ili numeričku vrednost. Ili to može da bude referenca na kontrola u obrascu. Argument stringexpr mora da ima nisku ili numeričku vrednost; ne može da proceni rezultat u Microsoft Access objekat.

Napomena: Primeri koji slede pokazuju upotrebu ove funkcije u Visual Basic for Applications (VBA) modulu. Za više informacija o radu sa VBA modulom izaberite stavku Referenca razvojnog programera sa padajuće liste pored stavke Pretraga i unesite termine u polje za pretragu.

Napomena: Ako funkciji Eval dodajete ime funkcije, u argument stringexpr morate da uključite zagrade posle imena funkcije . Na primer:

' 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 da koristite u izračunata kontrola obrascu ili izveštaju ili u makrou ili modulu. Funkcija Eval vraća varijantu koja je niska ili numerički tip.

Izraz niske argumenta mora da bude izraz koji se skladišti u nisci. Ako funkciji Eval dodate nisku koja ne sadrži numerički izraz ili ime funkcije, već samo jednostavnu tekstualnu nisku, greška izazvana tokom izvršavanja pojavljuje. Na primer, Eval("Smith") kao rezultat dobija grešku.

Možete da koristite funkciju Eval da biste utvrdili vrednost uskladištenu u svojstvu kontrole "Vrednost". Sledeći primer dodaje nisku koja sadrži punu referencu na kontrolu u funkciju Eval . Zatim prikazuje trenutnu vrednost kontrole u dijalogu.

Dim ctl As ControlDim strCtl As StringSet ctl = Forms!Employees!LastNamestrCtl = "Forms!Employees!LastName"MsgBox ("The current value of " & ctl.Name & _    " is " & Eval(strCtl))

Funkciju Eval možete da koristite za pristup operatorima izraza koji nisu obično dostupni u Visual Basic for Applications (VBA) modulu. Na primer, ne možete da koristite SQL operatore Between... I u programu In direktno u kodu, ali možete da ih koristite u izrazu koji je prosleđen funkciji Eval .

Sledeći primer određuje da li je vrednost kontrole "ShipRegion" u obrascu "Porudžbine" jedna od nekoliko navedenih skraćenica države. Ako polje sadrži jednu od skraćenica, intStatetačno (– 1). Imajte na umu da koristite jednostruke navodnike (') da biste uključili nisku u okviru druge niske.

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

Primeri upita

Izraz

Rezultati

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

Procenjuje vrednost niske i izračunava rezultat. Rezultat: 18.

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

Procenjuje vrednost niske, identifikuje funkcije i izvršava ih. Rezultat: Trenutni sistemski datum + trenutni mesec, prikazan u koloni "NoviDatum".

VBA primeri

Sledeći primer pretpostavlja da imate niz od 50 funkcija definisanih kao A1, A2 i tako dalje. Ovaj primer koristi funkciju Eval za pozivanje svake funkcije u grupi.

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

Sledeći primer pokreće događaj Click kao da je korisnik kliknuo na dugme u obrascu. Ako vrednost svojstva OnClick dugmeta počinje znakom jednakosti (=), što ukazuje na to da je to ime funkcije, funkcija Eval poziva funkciju koja je jednaka aktiviranju događaja Click . Ako vrednost ne počinje znakom jednakosti, onda vrednost mora da imenuje makro. Metod RunMacro objekta DoCmd pokreće 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

Da li vam je potrebna dodatna pomoć?

Želite još opcija?

Istražite pogodnosti pretplate, pregledajte kurseve za obuku, saznajte kako da obezbedite uređaj i još mnogo toga.

Zajednice vam pomažu da postavljate pitanja i odgovarate na pitanja, dajete povratne informacije i čujete mišljenje od stručnjaka sa bogatim znanjem.