Applies To„Access“, skirta „Microsoft 365“ „Access 2024“ Access 2021 Access 2019 Access 2016

Funkciją Eval galite naudoti norėdami įvertinti išraiška, kuris pateikia teksto eilutę arba skaitinę reikšmę.

Galite sukurti eilutę ir perduoti ją funkcijai Eval lyg eilutė būtų faktinis reiškinys. Funkcija Eval įvertina eilutės išraiška ir grąžina jos reikšmę. Pavyzdžiui, Eval("1 + 1") grąžina reikšmę 2.

Jei pereisite prie funkcijos Eval eilutės, kurioje yra funkcijos pavadinimas, funkcija Eval grąžins funkcijos grąžinamą reikšmę. Pavyzdžiui, Eval("Chr$(65)") grąžina "A".

Sintaksė

Eval ( stringexpr )

Argumentas stringexpr yra reiškinys, kuris įvertina kaip raidinę ir skaitinę teksto eilutę. Pvz., stringexpr gali būti funkcija, kuri pateikia eilutę arba skaitinę reikšmę. Arba tai gali būti nuoroda į formos valdiklis. Argumentas stringexpr turi būti įvertintas kaip eilutė arba skaitinė reikšmė; ji negali įvertinti kaip „Microsoft Access“ objektas.

Pastaba: Pateiktuose pavyzdžiuose parodyta, kaip naudoti šią funkciją „Visual Basic for Applications“ (VBA) modulyje. Daugiau informacijos apie darbą su VBA rasite išplečiamajame sąraše pasirinkę Kūrėjų nuoroda (šalia Ieškos) ir ieškos lauke įvedę vieną ar daugiau sąlygų.

Pastaba: Jei perduodate funkcijos pavadinimą funkcijai Eval , po funkcijos pavadinimo į argumentą stringexpr turite įtraukti skliaustus. Pavyzdžiui:

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

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

Debug.Print Eval("Date()")

Pastabos

Funkciją Eval galite naudoti formos ar ataskaitos apskaičiuojamasis valdiklis arba makrokomandoje ar modulyje. Funkcija Eval pateikia variantą , kuris yra eilutė arba skaitinis tipas.

Argumento stringexpr turi būti reiškinys, saugomas eilutėje. Jei pereinate prie funkcijos Eval eilutės, kurioje nėra skaitinio reiškinio arba funkcijos pavadinimo, o tik paprasta teksto eilutė, įvyksta vykdymo klaida. Pvz., Eval("Smith") rezultatas – klaida.

Funkciją Eval galite naudoti norėdami nustatyti reikšmę, saugomą valdiklio ypatybėje Reikšmė . Toliau pateiktas pavyzdys perduoda eilutę, kurioje yra visa nuoroda į valdiklį į funkciją Eval . Tada dialogo lange rodoma dabartinė valdiklio reikšmė.

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

Funkciją Eval galite naudoti norėdami pasiekti reiškinio operatorius, kurie nėra paprastai pasiekiami "Visual Basic for Applications" (VBA) modulyje. Pavyzdžiui, negalite naudoti SQL operatorių Between... Ir arba Į tiesiogiai savo kode, bet galite juos naudoti reiškinyje, perduotame funkcijai "Eval ".

Kitame pavyzdyje nustatoma, ar formos Užsakymai valdiklio Išsiuntimo regionas reikšmė yra viena iš kelių nurodytų būsenos santrumpų. Jei lauke yra viena iš santrumpų, intState bus Teisinga (–1). Atkreipkite dėmesį, kad viengubas kabutes (') naudojate norėdami įtraukti eilutę į kitą eilutę.

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

Užklausų pavyzdžiai

Reiškinys

Rezultatai

SELECT Eval("15+3") AS Išraiška1 FROM ProductSales GROUP BY Eval("15+3");

Apskaičiuoja eilutės reikšmę ir rezultatą. Rezultatas: 18.

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

Įvertina eilutės reikšmę, identifikuoja funkcijas ir jas vykdo. Rezultatas: dabartinė sistemos data + dabartinis mėnuo, rodomas stulpelyje "NewDate".

VBA pavyzdžiai

Toliau pateiktame pavyzdyje daroma prielaida, kad turite 50 funkcijų, apibrėžtų kaip A1, A2 ir t. t. Šiame pavyzdyje funkcija Eval naudojama iškviesti kiekvieną sekos funkciją.

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

Kitame pavyzdyje paleidžiamas įvykis Click taip, lyg vartotojas formoje spustelėjo mygtuką. Jei mygtuko ypatybės OnClick reikšmė prasideda lygybės ženklu (=), nurodančiu, kad tai yra funkcijos pavadinimas, "Eval " funkcija iškviečia funkciją, kuri atitinka įvykio Spustelėjimas suaktyvinimą. Jei reikšmė neprasideda lygybės ženklu, reikšmė turi būti makrokomandos pavadinimas. Objekto DoCmd metodas RunMacro vykdo pavadintą makrokomandą.

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

Reikia daugiau pagalbos?

Norite daugiau parinkčių?

Sužinokite apie prenumeratos pranašumus, peržiūrėkite mokymo kursus, sužinokite, kaip apsaugoti savo įrenginį ir kt.

Bendruomenės padeda užduoti klausimus ir į juos atsakyti, pateikti atsiliepimų ir išgirsti iš ekspertų, turinčių daug žinių.