Applies ToMicrosoft 365 rakendus Access Access 2024 Access 2021 Access 2019 Access 2016

Funktsiooni Eval abil saate väärtustada avaldise, mis annab tulemiks tekstistringi või arvväärtuse.

Soovi korral saate koostada stringi ja seejärel edastada funktsioonile Eval stringi tegeliku avaldisena. Funktsioon Eval väärtustab stringavaldise ja tagastab selle väärtuse. Näiteks Eval("1 + 1") tagastab 2.

Kui edastate funktsioonile Eval funktsiooni nime sisaldava stringi, tagastab funktsioon Eval funktsiooni tagastusväärtuse. Näiteks Eval("Chr$(65)") tagastab "A".

Süntaks

Eval ( stringexpr )

Argument stringexpr on avaldis, mis annab tulemiks tärgilise tekstistringi. Stringexpr võib olla näiteks funktsioon, mis tagastab stringi või arvväärtuse. Samuti võib see olla viide vormi juhtelement. Argument stringexpr peab olema väärtustatav stringi- või arvväärtusena; ei saa hinnata Microsoft Accessi objekt.

Märkus.: Järgmised näited kujutavad selle funktsiooni kasutamist rakenduse Visual Basic for Applications (VBA) moodulis. Lisateabe saamiseks VBA-ga töötamise kohta valige välja Otsing kõrval kuvatavast ripploendist väärtus Tootearendusmaterjal ja sisestage otsinguväljale üks või mitu sõna.

Märkus.: Kui edastate funktsioonile Eval funktsiooni nime, peate stringexpr argumendis lisama funktsiooni nime järele sulud. Siin on näide.

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

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

Debug.Print Eval("Date()")

Kommentaarid

Funktsiooni Eval saate kasutada vormi või aruande arvutatud juhtelement või makros või moodulis. Funktsioon Eval tagastab variandi, mis on string või arvutüüp.

Argument stringexpr peab olema stringis talletatud avaldis. Kui edastate funktsioonile Eval stringi, mis ei sisalda arvavaldist ega funktsiooni nime, vaid ainult lihttekstistringi, ilmneb käitustõrge. Näiteks Eval("Smith") annab tulemuseks vea.

Funktsiooni Eval abil saate määratleda juhtelemendi atribuudis Value talletatud väärtuse. Järgnevas näites edastatakse funktsioonile Eval juhtelemendi täielikku viidet sisaldav string. Selle tulemusel kuvatakse dialoogiboksis juhtelemendi praegune väärtus.

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

Funktsiooni Eval abil pääsete juurde ka nendele avaldise tehtemärkidele, mis muidu pole VBA-moodulis saadaval. Näiteks SQL-tehtemärke Between...And ja In ei saa kasutada koodis, kuid soovi korral saate neid kasutada funktsioonile Eval edastatavas avaldises.

Järgmises näites tehakse kindlaks, kas vormi Tellimused juhtelemendi väärtus Tarnepiirkond on üks määratud riikide lühenditest. Kui väli sisaldab ühte lühenditest, siis intState on True (–1). Ärge unustage stringis sisalduvat stringi panna ühekordsetesse jutumärkidesse (').

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

Päringu näited

Avaldis

Tulemid

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

Hindab stringi väärtust ja arvutab tulemi. Tulem: 18.

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

Hindab stringi väärtust, tuvastab funktsioonid ja käivitab need. Tulem: praegune süsteemikuupäev + praegune kuu, mis kuvatakse veerus "Uuskuupäev".

VBA näited

Järgmises näites eeldatakse, et teil on 50 funktsioonist koosnev sari, kus funktsioonide tähistused on A1, A2 jne. Näites kasutatakse funktsiooni Eval kõigi sarja kuuluvate funktsioonide kutsumiseks.

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

Järgmises näites käivitatakse klõpsamissündmus, justnagu kasutaja oleks klõpsanud vormil mõnda nuppu. Kui nupu atribuudi OnClick väärtus algab võrdusmärgiga (=), viidates, et tegemist on funktsiooni nimega, kutsub Eval funktsioon klõpsamissündmusele vastava funktsiooni. Kui väärtus ei alga võrdusmärgiga, peab väärtus sisaldama makro nime. Objekti DoCmd meetod RunMacro käivitab nimetatud 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

Kas vajate veel abi?

Kas soovite rohkem valikuvariante?

Siin saate tutvuda tellimusega kaasnevate eelistega, sirvida koolituskursusi, õppida seadet kaitsma ja teha veel palju muud.

Kogukonnad aitavad teil küsimusi esitada ja neile vastuseid saada, anda tagasisidet ja saada nõu rikkalike teadmistega asjatundjatelt.