Funkcija Eval

Funkciju eval var izmantot, lai novērtētu izteiksme, kas rodas teksta virknē vai skaitliskā vērtībā.

Varat izveidot virkni un pēc tam to nodot funkcijai eval tā, it kā virkne būtu faktiskā izteiksme. Funkcija eval novērtē virknes izteiksme un atgriež tās vērtību. Piemēram, Eval("1 + 1") atgriež vērtību 2.

Ja funkcijā eval nododat virkni, kurā ir funkcijas nosaukums, funkcija eval atgriež funkcijas atgriežamo vērtību. Piemēram, Eval("Chr$(65)") atgriež "A".

Sintakse

Eval ( stringexpr )

Arguments stringexpr ir izteiksme, kas tiek novērtēta kā burtciparu teksta virkne. Piemēram, stringexpr var būt funkcija, kas atgriež virkni vai skaitlisku vērtību. Vai tā var būt atsauce uz vadīkla formā. Arguments stringexpr ir jānovērtē uz virkni vai skaitlisku vērtību; to nevar novērtēt ar Microsoft Access objekts.

Piezīme.: Turpmākajos piemēros redzama šīs funkcijas izmantošana Visual Basic for Applications (VBA) modulī. Lai iegūtu papildinformāciju par darbu ar VBA, nolaižamajā sarakstā atlasiet Uzziņas materiāli izstrādātājiem blakus meklēšanas lodziņam un ievadiet šajā lodziņā vienu vai vairākus vārdus.

Piezīme.: Ja funkcijā eval tiek nodots funkcijas nosaukums, pēc funkcijas stringexpr argumentā ir jāiekļauj iekavas. Piemērs.

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

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

Debug.Print Eval("Date()")

Piezīmes

Funkciju eval varat izmantot formas vai atskaites aprēķinātās vērtības vadīkla vai makro vai modulī. Funkcija eval atgriež Variant, kas ir virkne vai skaitlisks tips.

Argumenta stringexpr ir jābūt izteiksmei, kas ir saglabāta virknē. Ja funkcijā eval nododat virkni, kurā nav skaitliskas izteiksmes vai funkcijas nosaukuma, bet tikai vienkārša teksta virkne, parādās izpildes laika kļūda. Piemēram, Eval("Smith") izraisa kļūdu.

Funkciju eval var izmantot, lai noteiktu vadīklas rekvizītā Value saglabāto vērtību. Tālāk sniegtajā piemērā tiek atgriezta virkne, kurā ir pilna atsauce uz vadīklu funkcija eval . Pēc tam dialoglodziņā tiek parādīta vadīklas pašreizējā vērtība.

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

Funkciju eval varat izmantot, lai piekļūtu izteiksmju operatoriem, kas parasti nav pieejami Visual Basic for APPLICATIONS (VBA) modulī. Piemēram, nevar izmantot SQL operatorus starp... Un vai tieši savā kodā, bet varat tās izmantot izteiksmē, kas nodota funkcijai eval .

Nākamais piemērs nosaka, vai ShipRegion vadīklas vērtība pasūtījumu formā ir viens no vairākiem norādītajiem štata saīsinājumiem. Ja laukā ir viens no saīsinājumiem, intState būs patiess (– 1). Ievērojiet, ka izmantojiet vienpēdiņas ('), lai iekļautu virkni citā virknē.

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

Vaicājumu piemēri

Izteiksme

Rezultāti

ATLASIET eval ("15 + 3") kā Izteiksme1 no ProductSales GROUP BY eval ("15 + 3");

Novērtē virknes vērtību un aprēķina rezultātu. Rezultāts: 18.

ATLASIET eval ("datums () + mēnesis (datums ())") kā NewDate no ProductSales Group by eval ("datums () + mēnesis (datums ())").

Novērtē virknes vērtību, identificē funkcijas un izpildīs tās. Rezultāts: pašreizējā sistēmas datums + pašreizējais mēnesis, kas parādīts kolonnā "NewDate".

VBA piemēri

Šajā piemērā tiek pieņemts, ka jums ir 50 funkciju virkne, kas definētas kā a1, a2 un tā tālāk. Šajā piemērā izmantota funkcija eval , lai sasauktu visas sērijas funkcijas.

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

Nākamais piemērs izraisa notikuma noklikšķināšanu tā, it kā lietotājs būtu noklikšķinājis uz veidlapas pogas. Ja pogas rekvizītā OnClick vērtība sākas ar vienādības zīmi (=), norādot, ka tā ir funkcijas nosaukums, funkcija eval zvana uz funkciju, kas ir līdzvērtīga notikuma Click trigerim. Ja vērtība nesākas ar vienādības zīmi, tad vērtībai ir jābūt makro nosaukumam. Objekta DoCmd metode RunMacro izpilda nosaukto makro.

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

Piezīme.:  Šī lapa ir tulkota automatizēti, un tajā var būt gramatiskas kļūdas un neprecizitātes. Mūsu nolūks ir šo saturu padarīt jums noderīgu. Vai jūs varat mūs informēt, vai informācija bija noderīga? Šeit ir raksts angļu valodā jūsu atsaucei.​

Paplašiniet savas Office prasmes
Iepazīties ar apmācību
Esiet pirmais, kas saņem jaunās iespējas
Pievienoties Office Insider programmai

Vai šī informācija bija noderīga?

Paldies par jūsu atsauksmēm!

Paldies par atsauksmēm! Šķiet, ka jums varētu būt noderīgi sazināties ar kādu no mūsu Office atbalsta speciālistiem.

×