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

Puteți utiliza funcția Eval pentru a evalua o expresie care are ca rezultat un șir text sau o valoare numerică.

Puteți să construiți un șir și apoi să-l transmiteți funcției Evaluare ca și cum șirul ar fi o expresie reală. Funcția Eval evaluează expresie șir și îi returnează valoarea. De exemplu, Eval("1 + 1") returnează 2.

Dacă treceți la funcția Eval un șir care conține numele unei funcții, funcția Eval returnează valoarea returnată a funcției. De exemplu, Eval("Chr$(65)") returnează "A".

Sintaxă

Eval ( stringexpr )

Argumentul stringexpr este o expresie care se evaluează la un șir text alfanumeric. De exemplu, stringexpr poate fi o funcție care returnează un șir sau o valoare numerică. Sau poate fi o referință la un control dintr-un formular. Argumentul stringexpr trebuie să se evalueze la un șir sau la o valoare numerică; nu se poate evalua la un Obiect Microsoft Access.

Notă: Exemplele care urmează demonstrează utilizarea acestei funcții într-un modul Visual Basic for Applications (VBA). Pentru mai multe informații despre lucrul cu VBA, selectați Referințe pentru dezvoltatori în lista verticală de lângă Căutare și introduceți unul sau mai mulți termeni în caseta de căutare.

Notă: Dacă transmiteți numele unei funcții funcției Eval , trebuie să includeți paranteze după numele funcției în argumentul stringexpr . De exemplu:

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

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

Debug.Print Eval("Date()")

Observații

Puteți utiliza funcția Eval într-un control calculat dintr-un formular sau raport sau într-o macrocomandă sau într-un modul. Funcția Eval returnează o valoare Variant care este un șir sau un tip numeric.

Stringexpr argument trebuie să fie o expresie stocată într-un șir. Dacă treceți la funcția Eval un șir care nu conține o expresie numerică sau un nume de funcție, ci doar un șir text simplu, apare o eroare la momentul rulării. De exemplu, Eval("Smith") are ca rezultat o eroare.

Puteți utiliza funcția Eval pentru a determina valoarea stocată în proprietatea Valoare a unui control. Următorul exemplu transmite un șir care conține o referință completă la un control pentru funcția Eval . Apoi afișează valoarea curentă a controlului într-o casetă de dialog.

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

Puteți utiliza funcția Eval pentru a accesa operatori de expresii care nu sunt disponibili de obicei într-un modul Visual Basic for Applications (VBA). De exemplu, nu puteți utiliza operatorii SQL Între... Și sau În direct în codul dvs., dar le puteți utiliza într-o expresie transmisă funcției Eval .

Următorul exemplu determină dacă valoarea unui control ShipRegion dintr-un formular Comenzi este una dintre abrevierile de stare specificate. În cazul în care câmpul conține una dintre abrevieri, intState va fi True (–1). Rețineți că utilizați ghilimele simple (') pentru a include un șir într-un alt șir.

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

Exemple de interogare

Expresie

Rezultatele

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

Evaluează valoarea șirului și calculează rezultatul. Rezultat: 18.

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

Evaluează valoarea șirului, identifică funcțiile și le execută. Rezultat: data curentă a sistemului + luna curentă, afișată în coloana "NewDate".

Exemple VBA

Următorul exemplu presupune că aveți o serie de 50 de funcții definite ca A1, A2 și așa mai departe. Acest exemplu utilizează funcția Eval pentru a apela fiecare funcție din serie.

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

Următorul exemplu declanșează un eveniment Clic ca și cum utilizatorul ar fi făcut clic pe un buton dintr-un formular. Dacă valoarea proprietății OnClick a butonului începe cu semnul egal (=), indicând faptul că aceasta este numele unei funcții, funcția Eval apelează funcția, ceea ce este echivalent cu declanșarea evenimentului Click . Dacă valoarea nu începe cu semnul egal, valoarea trebuie să denumiți o macrocomandă. Metoda RulareMacrocomanda obiectului DoCmd rulează macrocomanda denumită.

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

Aveți nevoie de ajutor suplimentar?

Doriți mai multe opțiuni?

Explorați avantajele abonamentului, navigați prin cursurile de instruire, aflați cum să vă securizați dispozitivul și multe altele.

Comunitățile vă ajută să adresați întrebări și să răspundeți la întrebări, să oferiți feedback și să primiți feedback de la experți cu cunoștințe bogate.