Eval-funktio

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 Control
Dim strCtl As String
Set ctl = Forms!Employees!LastName
strCtl = "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 Integer
intState = Eval("Forms!Orders!ShipRegion In " _
& "('AK', 'CA', 'ID', 'WA', 'MT', 'NM', 'OR')")

Kysely esimerkit

Lauseke

Tulokset

Valitse Val ("15 + 3") Lauseke1 alkaen ProductSales-RYHMÄSTÄ ("15 + 3").

Arvioi merkki jonon arvon ja laskee tuloksen. Tulos: 18.

Valitse Val ("päivä määrä () + kuukausi (päivä määrä ())") nimellä uusi päivä määrä ProductSales-ryhmästä ("Date () + Month (Date ())");

Laskee merkki jonon arvon, määrittää Funktiot ja suorittaa ne. Tulos: nykyinen järjestelmän päivä määrä + nykyinen kuukausi, joka näkyy sarakkeessa "NewDate".

VBA-esimerkit

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 intI
End 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 Control
Dim varTemp As Variant
Set ctl = Forms!Contacts!HelpButton
If (Left(ctl.OnClick, 1) = "=") Then
varTemp = Eval(Mid(ctl.OnClick,2))
Else
DoCmd.RunMacro ctl.OnClick
End If

Huomautus:  Tämä sivu on käännetty automaation avulla, ja siinä saattaa olla kielioppivirheitä tai epätarkkuuksia. Tarkoitus on, että sisällöstä on sinulle hyötyä. Kerrotko meille, oliko tiedoista hyötyä? Tästä pääset artikkelin englanninkieliseen versioon.

Kehitä Office-taitojasi
Tutustu koulutusmateriaaliin
Saat uudet ominaisuudet ensimmäisten joukossa
Liity Office Insider -käyttäjiin

Oliko näistä tiedoista hyötyä?

Kiitos palautteesta!

Kiitos palautteestasi! Näyttää siltä, että Office-tukiedustajamme avusta voi olla sinulle hyötyä.

×