Applies ToAccess pre Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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 stringexpr je výraz, ktorý sa vyhodnotí ako alfanumerický textový reťazec. Argumentom stringexpr môže byť napríklad funkcia, ktorá vráti reťazec alebo číselnú hodnotu. Alebo to môže byť odkaz na ovládací prvok vo formulári. Argument stringexpr sa musí vyhodnotiť ako reťazec alebo číselná hodnota. nemôže 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ť v vypočítavaný ovládací prvok vo formulári alebo zostave, v makre alebo module. Funkcia Eval vráti variant, ktorý je buď reťazcom, alebo číselným typom.

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 ControlDim strCtl As StringSet ctl = Forms!Employees!LastNamestrCtl = "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 IntegerintState = Eval("Forms!Orders!ShipRegion In " _    & "('AK', 'CA', 'ID', 'WA', 'MT', 'NM', 'OR')")

Príklady dotazu

Výraz

Výsledky

SELECT Eval("15+3") AS Expr1 FROM ProductSales GROUP BY Eval("15+3");

Vyhodnotí hodnotu reťazca a vypočíta výsledok. Výsledok: 18.

SELECT Eval("Date()+month(date())") AS NewDate FROM ProductSales Group by Eval("Date()+month(date())");

Vyhodnotí hodnotu reťazca, identifikuje funkcie a spustí ich. Výsledok: aktuálny systémový dátum + aktuálny mesiac, zobrazený v stĺpci NovýDátum.

Príklady jazyka VBA

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

Potrebujete ďalšiu pomoc?

Chcete ďalšie možnosti?

Môžete preskúmať výhody predplatného, prehľadávať školiace kurzy, naučiť sa zabezpečiť svoje zariadenie a ešte oveľa viac.

Komunity pomôžu s kladením otázok a odpovedaním na ne, s poskytovaním pripomienok a so získavaním informácií od odborníkov s bohatými znalosťami.