Eval функциясы

Eval функциясын қолдану арқылы мәтінді тізбек не сандық мән болып шығатын өрнекті бағалауыңызға болады.

Тізбекті құрастырып, ол нақты өрнек болған сияқты, Eval функциясына беруіңізге болады. Eval функциясы жол өрнегіті бағалап, оның мәнін қайтарады. Мысалы, Eval("1 + 1") 2-ні қайтарады.

Егер Eval функциясына функциясының атауы бар тізбекті берсеңіз, онда Eval функциясы функцияның қайтару мәнін қайтарады. Мысалы, Eval("Chr$(65)") «А» дегенді қайтарады.

Синтаксис

Eval(тізбекті_өрнек)

Тізбекті_өрнек аргументі алфавиттік-сандық мәтін тізбегіне бағалайтын өрнек болады. Мысалы, тізбекті_өрнек тізбекті немесе сандық мәнді қайтаратын функция болуы мүмкін. Немесе, ол пішіндегі басқару элементіне жасалған сілтеме болуы мүмкін. тізбекті_өрнек аргументі тізбекке немесе сандық мәнге бағалау керек; ол Microsoft Access нысаныне бағалана алмайды.

Ескерту : Төмендегі үлгілер осы жетені Бағдарламаларға арналған Visual Basic (VBA) модулінде пайдаланылуын көрсетеді. VBA модулімен жұмыс істеу туралы көбірек ақпарат алу үшін, жайылмалы шаршыдағы Іздеу түймешігінің қасындағы Жасақтаушы сілтемелері түймешігін нұқып, іздеу жолағына бір немесе бірнеше шартты ендіріңіз.

Ескерту : Егер функцияның атауын Eval функциясына берсеңіз, тізбекті_өрнек аргументінде функцияның атауынан кейін жақшаларды қосуыңыз керек. Мысалы:

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

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

Debug.Print Eval("Date()")

Түсініктемелер

Eval функциясын пішіндегі немесе баяндамадағы есептелген басқару элементінде немесе макроста не модульде қолдануыңызға болады. Eval функциясы не тізбек не сандық түрі болатын Нұсқаның деректер түрі дегенді қайтарады.

Аргумент тізбекті_өрнек тізбекте сақталған өрнек болуы керек. Егер Eval функциясына жай ғана мәтін тізбегінен басқа сандық өрнегі не функцияның атауы жоқ тізбекті берсеңіз, іске қосу уақытының қатесі туындайды. Мысалы, Eval("Smith") қателік тудырады.

Eval функциясын қолдану арқылы басқару элементінің Мән сипатында сақталған мәнді анықтау үшін қолдануыңызға болады. Келесі мысал Eval функциясына басқару элементіне толық сілтемесі бар тізбекті береді. Содан соң, ол басқару элементінің ағымдағы мәнін тілқатысу терезесінде көрсетеді.

Dim ctl As Control
Dim strCtl As String
Set ctl = Пішіндер!Қызметкерлер!Фамилия
strCtl = "Пішіндер!Қызметкерлер!Фамилия"
MsgBox ("Келесінің ағымдағы мәні: " & ctl.Name & _
" is " & Eval(strCtl))

Eval функциясын Visual Basic for Applications (VBA) модулінде әдетте кездеспейтін өрнек операторларына қатынау үшін қолдануыңызға болады. Мысалы, Between...And немесе In SQL амалдағыштарды тікелей кодыңызда қолдана алмайсыз, бірақ оларды Eval функциясына берілген өрнекте қолдануыңызға болады.

Келесі мысал Тапсырыстар пішініндегі ShipRegion басқару элементінің мәні бірнеше бекітілген штат аббревиатураларының біреуне сәйкес келетінін не келмейтінін анықтайды. Егер өрісте аббревиатуралардың біреуі болса, онда intStateШын (–1) болып шығады. Тізбекті басқа тізбектің ішіне қосу үшін үстінгі жалғыз тырнақшаларды қолдану керек екенін аңғарыңыз.

Dim intState As Integer
intState = Eval("Пішіндер!Тапсырыстар!ЖіберуАумағы In " _
& "('AK', 'CA', 'ID', 'WA', 'MT', 'NM', 'OR')")

Мысал

Келесі мысал A1, A2 және сол сияқты белгіленген 50 функция қатары бар деп есептейді. Бұл мысал қатардағы әр функцияны шақыру үшін, Eval функциясын қолданады.

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

Келесі мысал, пайдаланушы пішіндегі батырманы басқандай, Нұқу оқиғасын шақырады. Егер батырманың OnClick сипатының мәні функцияның атын білдіретін тең (=) белгісінен басталса, Eval функциясы Click оқиғасын шақырғанға балама функцияны шақырады. Егер мән тең белгісінен басталмаса, онда мән макростың аты болуы керек. DoCmd объектісінің МакростыОрындау әдісі аталған макросты орындайды.

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
Дағдыларды жетілдіру
Оқыту курсымен танысыңыз
Жаңа мүмкіндіктерге бірінші болып қол жеткізу
Office Insider бағдарламасына қосылу

Осы ақпарат пайдалы болды ма?

Пікіріңіз үшін рақмет!

Пікіріңізге рақмет! Сізді Office қолдау көрсету қызметіндегі агенттердің бірімен байланыстырған жөн болуы мүмкін.

×