Eval függvény

Hatókör
Microsoft 365-höz készült Access Access 2024 Access 2021 Access 2019 Access 2016

Az Eval függvénnyel kiértékelhet egy szöveges sztringet vagy numerikus értéket eredményező kifejezést.

A létrehozott karakterláncokat tényleges kifejezésként adhatjuk át az Eval függvénynek. Az Eval függvény kiértékeli a sztringkifejezést, és visszaadja annak értékét. Például a Eval("1 + 1") 2 értéket adja vissza.

Ha az Eval függvénynek egy függvénynevet tartalmazó karakterláncot ad át, az Eval az adott függvény visszatérési értékét adja vissza. Például az Eval("Chr$(65)") "A" értéket adja vissza.

Szintaxis

Eval(stringexpr)

A stringexpr argumentum egy alfanumerikus szöveges sztringre kiértékelő kifejezés. A stringexpr függvény lehet például egy sztring vagy egy numerikus érték visszaadása. Vagy egy űrlap vezérlőelemére mutató hivatkozás is lehet. A stringexpr argumentumnak sztring vagy numerikus értéknek kell lennie; Nem értékelhető ki Microsoft Access-objektummá.

Megjegyzés

A következő példák egy Visual Basic for Applications (VBA) modulban mutatják be a függvény használatát. A VBA használatáról a Keresés elem mellett található legördülő listából a fejlesztői forrásokat választva, majd egy vagy több keresőszót megadva kaphat további tájékoztatást.

Megjegyzés

Ha egy függvény nevét adja át az Eval függvénynek, zárójeleket kell megadnia a függvény neve után a stringexpr argumentumban. Például:

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

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

Debug.Print Eval("Date()")

Megjegyzések

Az Eval függvényt űrlapok vagy jelentések számított vezérlőelemeiben, illetve makrókban vagy modulokban is használhatja. Az Eval függvény karakterlánc vagy szám típusú Variant értéket ad vissza.

A stringexpr argumentumnak egy sztringben tárolt kifejezésnek kell lennie. Ha olyan sztringet ad át az Eval függvénynek, amely nem tartalmaz numerikus kifejezést vagy függvénynevet, csak egyszerű szöveges sztringet, futásidejű hiba történik. Például hibát Eval("Smith") eredményez.

Az Eval függvénnyel megállapíthatja, hogy egy vezérlőelem Value tulajdonságában milyen érték van tárolva. Az alábbi példában egy olyan karakterláncot adunk át az Eval függvénynek, amely teljes hivatkozást tartalmaz egy vezérlőelemre. Ezután egy párbeszédpanelen megjeleníti a vezérlőelem aktuális értékét.

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))

Az Eval függvénnyel olyan kifejezésoperátorokhoz férhet hozzá, amelyek általában nem érhetők el egy Visual Basic for Applications (VBA) modulban. Például nem használhatja az SQL-operátorokat a következő között: ... És vagy Közvetlenül a kódban, de használhatja őket az Eval függvénynek átadott kifejezésben.

Az alábbi példában megállapíthatja, hogy a Rendelés űrlapon lévő SzállításiTerület vezérlőelem értéke megegyezik-e a megadott államrövidítések egyikével. Ha a mező a rövidítések egyikét tartalmazza, intStateigaz ( –1) lesz. A karakterláncon belüli karakterláncokat aposztróffal (’) kell jelölni.

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

Példák lekérdezésre

Kifejezés Eredmény:
SELECT Eval("15+3") AS Expr1 FROM ProductSales GROUP BY Eval("15+3"); Kiértékeli a sztring értékét, és kiszámítja az eredményt. Eredmény: 18.
SELECT Eval("Date()+month(date())") AS NewDate FROM ProductSales Group by Eval("Date()+month(date())"); Kiértékeli a sztring értékét, azonosítja a függvényeket, és végrehajtja őket. Eredmény: aktuális rendszerdátum + aktuális hónap, az "ÚjDátum" oszlopban jelenik meg.

VBA-példák

Az alábbi példa feltételezi, hogy van 50 függvény, melyek neve A1, A2 stb. A példa az Eval függvényt használja a sorozat függvényeinek meghívására.

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

A következő példát követve indítson el egy Click eseményt, mintha a felhasználó rákattintott volna egy gombra egy űrlapon. Ha a gomb OnClick tulajdonságának értéke egyenlőségjellel (=) kezdődik – ami azt jelenti, hogy egy függvény neve –, akkor az Eval függvény meghívja a függvényt, ami ugyanaz, mint a Click esemény indítása. Ha az érték nem egyenlőségjellel kezdődik, akkor az érték makrót nevez meg. A DoCmd objektum MakróFuttatása metódusa lefuttatja a megnevezett makrót.

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