Funcția Eval

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

Puteți să construiți un șir, apoi să-l treceți la funcția eval ca și cum șirul ar fi o expresie reală. Funcția eval evaluează expresie șir și returnează valoarea sa. 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 de text alfanumeric. De exemplu, stringexpr poate fi o funcție care returnează un șir sau o valoare numerică. Sau poate fi o referință la o control dintr-un formular. Argumentul stringexpr trebuie să se evalueze la o valoare șir sau numerică; Nu se poate evalua într-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 la funcția 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 un modul. Funcția eval returnează o valoare Variant care este fie un șir, fie un tip numeric.

Argumentul stringexpr trebuie să fie o expresie care este 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 un 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 Value a unui control. Următorul exemplu trece un șir care conține o referință completă la un control la funcția eval . Apoi afișează valoarea curentă a controlului într-o casetă de dialog.

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

Puteți utiliza funcția eval pentru a accesa operatorii de expresie 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 direct în cod, dar le puteți utiliza într-o expresie transmisă funcției eval .

Următorul exemplu determină dacă valoarea unui control RegiuneExpediere dintr-un formular comenzi este una dintre mai multe abrevieri 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 Integer
intState = Eval("Forms!Orders!ShipRegion In " _
& "('AK', 'CA', 'ID', 'WA', 'MT', 'NM', 'OR')")

Exemple de interogare

Expresie

Rezultatele

Selectați eval ("15 + 3") ca Expr1 de la ProductSales GROUP BY eval ("15 + 3");

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

Selectați eval ("dată () + lună (dată ())") ca NewDate din ProductSales Group by eval ("date () + lună (dată ())");

Evaluează valoarea șir, 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 funcții 50 definite ca a1, a2 etc. 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 intI
End Sub

Următorul exemplu declanșează un eveniment clic ca și cum utilizatorul a făcut clic pe un buton dintr-un formular. Dacă valoarea proprietății OnClick a butonului începe cu semnul egal (=), semnificând că acesta este numele unei funcții, funcția eval apelează funcția, care este echivalentă cu declanșarea evenimentului clic . Dacă valoarea nu începe cu semnul egal, atunci valoarea trebuie să numească o macrocomandă. Metoda ExecuțieMacrocomandă a obiectului obiectului DoCmd rulează macrocomanda denumită.

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

Notă:  Această pagină a fost tradusă automatizat și poate conține erori gramaticale sau inexactități. Scopul nostru este ca acest conținut să vă fie util. Ne puteți spune dacă informațiile au fost utile? Aici se află articolul în limba engleză, ca referință.

Extindeți-vă competențele Office
Explorați instruirea
Fiți primul care obține noile caracteristici
Alăturați-vă utilizatorilor Office Insider

Au fost utile aceste informații?

Vă mulțumim pentru feedback!

Vă mulțumim pentru feedback! Se pare că ar fi util să luați legătura cu unul dintre agenții noștri de asistență Office.

×