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

Voit käyttää Eval-funktiota laskemaan lauseken arvon, jonka tuloksena saadaan tekstimerkkijono tai numeerinen arvo.

Voit muodostaa merkkijonon ja siirtää sen sitten Eval-funktioon aivan kuin merkkijono olisi todellinen lauseke. Eval-funktio laskee merkkijonolauseken arvon ja palauttaa sen. Esimerkiksi Eval("1 + 1") palauttaa arvon 2.

Jos siirrät Eval-funktioon merkkijonon, joka sisältää funktion nimen, Eval-funktio palauttaa funktion palautusarvon. Esimerkiksi Eval("Chr$(65)") palauttaa arvon ”A”.

Syntaksi

Eval ( stringexpr )

stringexpr -argumentti on lauseke, jonka arvo lasketaan aakkosnumeerisena tekstimerkkijonona. Esimerkiksi stringexpr voi olla funktio, joka palauttaa merkkijonon tai numeerisen arvon. Tai se voi olla viittaus ohjaineen lomakkeessa. stringexpr-argumentin arvo on laskettava merkkijonona tai numeerisena arvona; sen arvoa ei voida laskea Microsoft Access -objektiina.

Huomautus: Seuraavissa esimerkeissä kerrotaan, kuinka tätä funktiota käytetään Visual Basic for Applications (VBA) -moduulissa. Jos haluat lisätietoja VBA:n käytöstä, valitse Sovelluskehittäjän opasHaku-kentän viereisestä luettelosta ja anna yksi tai useampi hakuehto hakukenttään.

Huomautus: Jos siirrät funktion nimen Eval-funktioon, funktion nimen jälkeen on lisättävä sulkeet stringexpr-argumentissa. Esimerkki:

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

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

Debug.Print Eval("Date()")

Huomautuksia

Voit käyttää Eval-funktiota laskettu ohjausobjektissa lomakkeessa tai raportissa, tai makrossa tai moduulissa. Eval-funktio palauttaa Variant-muuttujan, joka on joko merkkijono tai numeerinen tyyppi.

stringexpr -argumentin on oltava lauseke, joka tallennetaan merkkijonoon. Jos siirrät Eval-funktion merkkijonoon, joka ei sisällä numeerista lauseketta tai funktion nimeä vaan pelkästään yksinkertaisen tekstimerkkijonon, tapahtuu suorituksenaikainen virhe. Esimerkiksi Eval("Smith")n tuloksena tapahtuu virhe.

Voit käyttää Eval-funktiota määrittämään ohjausobjektin Value-ominaisuuteen tallennetun arvon. Seuraavassa esimerkissä siirretään merkkijono, joka sisältää täydellisen viittauksen ohjausobjektiin Eval-funktiossa. Se näyttää sitten ohjausobjektin nykyisen arvon valintaikkunassa.

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

Voit Eval-funktion avulla käyttää lausekeoperaattoreita, jotka eivät ole tavallisesti käytettävissä Visual Basic for Applications (VBA) -moduulissa. Et voi esimerkiksi käyttää SQL-operaattoreita Between...And tai In suoraan koodissa, mutta voit käyttää niitä Eval-funktioon siirretyssä lausekkeessa.

Seuraavassa esimerkissä määritetään, onko Tilaukset-lomakkeen ShipRegion-ohjausobjektin arvo yksi useista määritetyistä tilan lyhenteistä. Jos kenttä sisältää yhden lyhenteistä, intState on Tosi – (1). Huomaa, että puolilainausmerkkejä (') käytetään sisällyttämään merkkijono toiseen merkkijonoon.

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

Esimerkkejä kyselystä

Lauseke

Tulokset

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

Laskee merkkijonoarvon ja tuloksen. Tulos: 18.

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

Laskee merkkijonoarvon, tunnistaa funktiot ja suorittaa ne. Tulos: nykyinen järjestelmän päivämäärä + nykyinen kuukausi, joka näkyy Sarakkeessa "UusiPäivä".

VBA-esimerkkejä

Seuraavassa esimerkissä oletetaan, että sinulla on 50 funktion, jotka on määritetty A1, A2 jne., sarja. Tässä esimerkissä käytetään Eval-funktiota kutsumaan sarjan kukin funktio.

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

Seuraavassa esimerkissä käynnistetään Click-tapahtuma aivan kuin käyttäjä olisi napsauttanut lomakkeen painiketta. Jos painikkeen OnClick-ominaisuuden arvon alussa on funktion nimeä osoittava yhtäläisyysmerkki (=), Eval-funktio kutsuu funktion, joka vastaa Click-tapahtuman käynnistämistä. Jos arvo ei ala yhtäläisyysmerkillä, arvon on nimettävä makro. DoCmd-ohjausobjektin RunMacro-menetelmä suorittaa nimetyn makron.

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

Tarvitsetko lisäohjeita?

Haluatko lisää vaihtoehtoja?

Tutustu tilausetuihin, selaa harjoituskursseja, opi suojaamaan laitteesi ja paljon muuta.