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.

Osallistumalla yhteisöihin voit kysyä kysymyksiä ja vastata niihin, antaa palautetta sekä kuulla lisää asiantuntijoilta, joilla on runsaasti tietoa.