Funkce Eval

Funkci Eval můžete použít k vyhodnocení Výraz, které vedou k vytvoření textového řetězce nebo číselné hodnoty.

Můžete vytvořit řetězec a pak ho předat funkci Eval , jako kdyby byl řetězec skutečným výrazem. Funkce Eval vyhodnotí Řetězcový výraz a vrátí jeho hodnotu. Například Eval("1 + 1") vrátí hodnotu 2.

Pokud předáte funkci Eval řetězec obsahující název funkce, vrátí funkce Eval vrácenou hodnotu funkce. Eval("Chr$(65)") například vrátí hodnotu "A".

Syntaxe

Eval ( stringexpr )

Argument stringexpr je výraz, jehož výsledkem je alfanumerický textový řetězec. Například stringexpr může být funkce, která vrátí řetězec nebo číselnou hodnotu. Nebo může být odkaz na Ovládací prvek ve formuláři. Argument stringexpr musí být vyhodnocen jako řetězec nebo číselná hodnota. nedá se vyhodnotí Objekt Microsoft Access.

Poznámka: Následující příklady ukazují použití této funkce v modulu VBA (Visual Basic pro Applications). Pokud chcete další informace o práci s modulem VBA, vyberte Referenční informace pro vývojáře, které najdete v rozevíracím seznamu vedle položky Hledat a do vyhledávacího pole napište požadované pojmy.

Poznámka: Pokud předáváte funkci Eval název funkce, musíte zahrnout za názvem funkce v argumentu stringexpr závorky. Například:

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

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

Debug.Print Eval("Date()")

Poznámky:

Funkci Eval můžete použít v Vypočítaný ovládací prvek ve formuláři nebo sestavě nebo v makru nebo modulu. Funkce Eval vrátí hodnotu variant typu String nebo numeric.

Argument stringexpr musí být výraz, který je uložený v řetězci. Pokud předáte funkci Eval řetězec, který neobsahuje číselný výraz nebo název funkce, ale jenom jednoduchý textový řetězec, dojde k Chyba za běhu. Například Eval("Smith") způsobí chybu.

Pomocí funkce Eval můžete určit hodnotu uloženou ve vlastnosti hodnota ovládacího prvku. Následující příklad předá do funkce Eval řetězec obsahující úplný odkaz na ovládací prvek. V dialogovém okně pak zobrazí aktuální hodnotu ovládacího prvku.

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

Pomocí funkce Eval můžete získat přístup k operátorům výrazů, které nejsou běžně k dispozici v modulu Visual Basic for Applications (VBA). Například operátory jazyka SQL nemůžete používat mezi... A nebo přímo v kódu, ale můžete je použít ve výrazu předaném funkci Eval .

Následující příklad určuje, jestli je hodnota ovládacího prvku RegionPříjemce ve formuláři objednávky jednou z několika zadaných zkratek státu. Pokud pole obsahuje některou ze zkratek, intState bude pravda (-1). Všimněte si, že k zahrnutí řetězce do jiného řetězce slouží apostrofy (').

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

Příklady dotazů

Výraz

Výsledky

Vyberte Eval ("15 + 3") jako Výraz1 FROM ProductSales GROUP BY Eval ("15 + 3");

Vyhodnotí hodnotu řetězce a vypočte výsledek. Výsledek: 18.

Vyberte Eval ("Date () + month (Date ())") jako NewDate FROM ProductSales Group by ("Date () + month (Date ())");

Vyhodnotí hodnotu řetězce, identifikuje funkce a provede je. Výsledek: aktuální systémové datum + aktuální měsíc zobrazený ve sloupci "NewDate".

Příklady jazyka VBA

Následující příklad předpokládá, že máte řadu funkcí 50 definovaných jako a1, a2 atd. V tomto příkladu se pomocí funkce Eval vyvolají jednotlivé funkce v řadě.

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

Následující příklad aktivuje událost Click jako kdybyste klepnuli na tlačítko ve formuláři. Pokud hodnota vlastnosti při kliknutí na tlačítku začíná symbolem rovná se (=), znamená to, že se jedná o název funkce, funkce Eval zavolá funkci, což je ekvivalentní spuštění události Click . Pokud hodnota nezačínat symbolem rovná se, musí se jednat o název makra. Metoda RunMacro objektu DoCmd spouští pojmenované 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

Poznámka:  Tato stránka byla přeložena automaticky a může obsahovat gramatické chyby nebo nepřesnosti. Naším cílem je to, aby pro vás byl její obsah užitečný. Mohli byste nám prosím dát vědět, jestli vám informace pomohly? Pokud chcete, můžete se podívat na anglickou verzi článku.

Rozšiřte své dovednosti s Office
Projít školení
Získejte nové funkce jako první
Připojte se k účastníkům programu Office Insiders

Byly tyto informace užitečné?

Děkujeme vám za zpětnou vazbu.

Děkujeme vám za váš názor! Pravděpodobně bude užitečné, když vás spojíme s některým z našich agentů podpory Office.

×