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

Funkciju Eval var izmantot , lai novērtētu izteiksme, kura rezultātā rodas teksta virkne vai skaitliska vērtība.

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

Ja Eval funkcijai tiek nodota virkne, kurā ir funkcijas nosaukums, funkcija Eval atgriež funkcijas atgriezto vērtību. Piemēram, Eval("Chr$(65)") "A".

Sintakse

Eval ( virknes_izteiksme )

Arguments virknes_izteiksme ir izteiksme, kas tiek novērtēta kā burtciparu teksta virkne. Piemēram, virknes_izteiksme var būt funkcija, kas atgriež virkni vai skaitlisku vērtību. Vai arī tā var būt atsauce uz vadīkla formu. Virknes_izteiksmes arguments ir jānovērtē kā virkne vai skaitliska vērtība; to nevar novērtēt kā 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 funkcijas nosaukums tiek nodots Eval funkcijai, argumentā virknes_izteiksme jāiekļauj iekavas pēc funkcijas nosaukuma . 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 var izmantot formā aprēķinātās vērtības vadīkla atskaitē vai makro vai modulī. Funkcija Eval atgriež Variant vērtību , kas ir virkne vai skaitlisks tips.

Argumenta virknes_izteiksmei jābūt izteiksmei, kas tiek glabāta virknē. Ja pārejat uz Eval funkciju virkni, kas nesatur skaitlisku izteiksmi vai funkcijas nosaukumu, bet ir tikai vienkārša teksta virkne, tiek izpildes laika kļūda virkne. Piemēram, Eval("Smith") rezultātā rodas kļūda.

Varat izmantot funkciju Eval , lai noteiktu vadīklas rekvizītā Value saglabāto vērtību. Šajā piemērā virkne, kurā ir pilna atsauce uz vadīklu, nodod funkcijai Eval . Pēc tam tas dialoglodziņā parāda vadīklas pašreizējo vērtību.

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

Varat izmantot funkciju Eval , lai piekļūtu izteiksmju operatoriem, kas parasti nav pieejami Visual Basic for Applications (VBA) modulī. Piemēram, nevar izmantot SQL operatorus Between... Un vai In tieši kodā, bet varat tos izmantot izteiksmē, kas nodota funkcijai Eval .

Nākamajā piemērā tiek noteikts, vai formas Pasūtījumi vadīklas Piegādes_reģions vērtība ir viens no vairākiem norādītajiem štatu saīsinājumiem. Ja laukā ir kāds no saīsinājumiem, intState būs True (–1). Ņemiet vērā, ka vienpēdiņās (') ir jāiekļauj virkne citā virknē.

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

Vaicājumu piemēri

Izteiksme

Rezultāti

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

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

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

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

VBA piemēri

Šajā piemērā tiek pieņemts, ka jums ir 50 funkciju sērijas, kas definētas kā A1, A2 utt. Šajā piemērā izmantota funkcija Eval , lai izsauktu katru sērijas funkciju.

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

Nākamajā piemērā tiek aktivizēts notikums Noklikšķiniet uz tā, it kā lietotājs veidlapā būtu noklikšķinājis uz pogas. Ja pogas rekvizīta OnClick vērtība sākas ar vienādības zīmi (=), norādot, ka tas ir funkcijas nosaukums, funkcija Eval izsauc funkciju, kas ir līdzvērtīga notikuma Click izsaukšanai. Ja vērtība nesākas ar vienādības zīmi, vērtībai ir jānosaukumā makro. Objekta DoCmd metode RunMacro izpilda nosaukto 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

Nepieciešama papildu palīdzība?

Vēlaties vairāk opciju?

Izpētiet abonementa priekšrocības, pārlūkojiet apmācības kursus, uzziniet, kā aizsargāt ierīci un veikt citas darbības.

Kopienas palīdz uzdot jautājumus un atbildēt uz tiem, sniegt atsauksmes, kā arī saņemt informāciju no ekspertiem ar bagātīgām zināšanām.