Eval függvény

Az Eval függvény olyan kifejezések kiértékelésére használható, melyek szöveges karakterláncot vagy számértéket eredményeznek.

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 karakterlánc-kifejezést, majd visszaadja annak értékét. Az Eval("1 + 1") eredménye például 2.

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. Az Eval("Chr$(65)") eredménye például „A”.

Szintaxis

Eval ( szöveg )

A szöveg argumentum olyan kifejezés, amely alfanumerikus karakterláncot ad vissza. A szöveg lehet például egy olyan függvény, amely karakterláncot vagy számértéket ad eredményül, illetve egy űrlapon szereplő vezérlőre mutató hivatkozás. A szöveg argumentum kiértékelésének eredménye csak egy karakterlánc vagy egy számérték lehet, Microsoft Access-objektum nem.

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, akkor a szöveg argumentumban a függvény után zárójelet kell írni. 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ény használható az űrlapokon vagy jelentésekben szereplő számított vezérlőelemekben, illetve makrókban és modulokban is. Az Eval függvény karakterlánc vagy szám típusú Variant értéket ad vissza.

A szöveg argumentumnak karakterláncban tárolt kifejezésnek kell lennie. Ha az Eval függvénynek olyan karakterláncot ad át, amely nem tartalmaz numerikus kifejezést vagy függvénynevet, csak egyszerű szöveges karakterláncot, akkor futási idejű hiba lép fel. Hibát eredményez például a következő: Eval("Smith").

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 elérhet olyan kifejezésoperátorokat is, amelyek általában nem érhetők el egy Visual Basic for Applications (VBA) nyelvű modulban. A Between...And és az In SQL-operátorokat például a programkódban közvetlenül nem használhatja, de egy, az Eval függvénynek átadott kifejezésben igen.

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ő tartalmazza az egyik rövidítést, akkor az intState értéke Igaz (-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élda

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
Ismeretek bővítése
Oktatóanyagok megismerése
Új szolgáltatások listájának lekérése
Részvétel az Office Insider programban

Hasznos volt az információ?

Köszönjük a visszajelzését!

Köszönjük visszajelzését. Jobbnak látjuk, ha az Office egyik támogatási szakemberéhez irányítjuk.

×