Funkcia Eval

Pomocou funkcie Eval môžete vyhodnotiť výraz, ktorého výsledkom je textový reťazec alebo číselná hodnota.

Môžete vytvoriť reťazec a potom ho zadať do funkcie Eval, ako keby bol tento reťazec skutočným výrazom. Funkcia Eval tento reťazcový výraz vyhodnotí a vráti jeho hodnotu. Napríklad funkcia Eval("1 + 1") vráti hodnotu 2.

Ak do funkcie Eval zadáte reťazec, ktorý obsahuje názov funkcie, funkcia Eval vráti vrátenú hodnotu funkcie. Napríklad funkcia Eval("Chr$(65)") vráti hodnotu A.

Syntax

Eval ( reťazecvýrazu )

Argument je výraz, ktorý sa vyhodnotí na alfanumerický textový reťazec. Argumentom môže byť napríklad funkcia, ktorá vráti reťazec alebo číselnú hodnotu. Môže to byť aj odkaz na ovládací prvok vo formulári. Argument sa musí vyhodnotiť na reťazec alebo číselnú hodnotu. Nemôže sa vyhodnotiť na objekt Microsoft Accessu.

Poznámka : Nasledujúce príklady ukazujú použitie tejto funkcie v module jazyka Visual Basic for Applications (VBA). Ak chcete získať ďalšie informácie o práci s jazykom VBA, vyberte z rozbaľovacieho zoznamu vedľa položky Hľadať možnosť Odkaz pre vývojára a do vyhľadávacieho poľa zadajte nejaké výrazy.

Poznámka : Ak do funkcie Eval zadávate názov funkcie, v argumente je za názov funkcie potrebné zadať zátvorky. Príklad:

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

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

Debug.Print Eval("Date()")

Poznámky

Funkciu Eval môžete použiť vo vypočítavanom ovládacom prvku vo formulári alebo zostave, ako aj v makre alebo module. Funkcia Eval vráti reťazcovú alebo číselnú hodnotu typu Variant.

Argument musí byť výraz, ktorý je uložený v reťazci. Ak do funkcie Eval zadáte reťazec, ktorý neobsahuje číselný výraz alebo názov funkcie, ale iba jednoduchý textový reťazec, vyskytne sa chyba počas spustenia. Napríklad funkcia Eval("Smith") spôsobí chybu.

Pomocou funkcie Eval môžete určiť hodnotu uloženú vo vlastnosti Value ovládacieho prvku. V nasledujúcom príklade je do funkcie Eval zadaný reťazec, ktorý obsahuje úplný odkaz na ovládací prvok. Funkcia potom zobrazí aktuálnu hodnotu ovládacieho prvku v dialógovom okne.

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

Funkciu Eval môžete použiť na získanie prístupu k operátorom výrazov, ktoré nie sú bežne k dispozícii v module programu Visual Basic for Applications (VBA). Napríklad operátory SQL Between...And alebo In nemožno použiť priamo v kóde, môžete ich však použiť vo výraze zadanom do funkcie Eval.

Nasledujúci príklad určuje, či je hodnota ovládacieho prvku ShipRegion vo formulári Orders jednou z viacerých zadaných skratiek štátov. Ak pole obsahuje jednu zo skratiek, intState bude mať hodnotu True (–1). Všimnite si, že na zahrnutie reťazca do ďalšieho reťazca sa používajú jednoduché úvodzovky (').

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

Príklad

Nasledujúci príklad vychádza z predpokladu, že máte rad 50 funkcií definovaných ako A1, A2 atď. V tomto príklade je funkcia Eval použitá na vyvolanie jednotlivých funkcií v rade.

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

V nasledujúcom príklade sa spúšťa udalosť Kliknutie, ako keby používateľ klikol na tlačidlo vo formulári. Ak sa hodnota vlastnosti OnClick tlačidla začína znakom rovnosti (=), ktorý označuje, že ide o názov funkcie, funkcia Eval vyvolá funkciu, čo zodpovedá spusteniu udalosti Kliknutie. Ak sa hodnota nezačína znakom rovnosti, potom musí pomenúvať makro. Metóda RunMacro objektu DoCmd spúšťa pomenované makro.

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
Rozšírte svoje zručnosti
Preskúmať školenie
Buďte medzi prvými, ktorí získajú nové funkcie
Pridajte sa k insiderom pre Office