Функция Eval

Важно : Тази статия е преведена машинно – вижте отказа от отговорност. Английската версия на тази статия за справка можете да намерите тук .

Можете да използвате функцията Eval се оценява израз , което води до текстов низ или числова стойност.

Можете да съставяте низ и след това го мине Eval функция, тъй като, ако низът действителния израз. Функцията Eval изчислява низов израз и връща стойността му. Например Eval("1 + 1") връща 2.

Ако преминете към Eval функция низ, който съдържа името на функция, функцията Eval връща върнатата стойност на функцията. Например Eval("Chr$(65)") връща "A".

Синтаксис

Eval () stringexpr )

Stringexpr аргумент е израз, който се оценява на буквено-цифров текстов низ. Например stringexpr може да бъде функция, която връща низ или числова стойност. Или може да бъде препратка към контрола във формуляр. Аргументът stringexpr трябва да се оценяват като низ или числова стойност; Тя не може да се оценяват като Обект на Microsoft Access.

Забележка : Примерите по-долу илюстрират използването на тази функция във Visual Basic for Applications (VBA). За повече информация относно работата с VBA изберете Справочни материали за разработчици в падащия списък до Търсене и въведете един или няколко термина в полето за търсене.

Забележка : Ако сте минаваща името на функция Eval функция, трябва да включите скоби след името на функцията в stringexpr аргумент. Например:

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

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

Debug.Print Eval("Date()")

Забележки

Можете да използвате функцията Eval в изчисляема контрола във формуляр или отчет, или в макрос или модул. Функцията Eval връща вариант, което е низ или числов тип.

Аргумент stringexpr трябва да бъде израз, който се съхранява в низ. Ако преминете към Eval функция низ, който не съдържа числов израз или име на функция, но само обикновен текстов низ, грешка по време на изпълнение възниква. Например Eval("Smith") води до грешка.

Можете да използвате функцията Eval , за да определи стойността, съхранена в свойството стойност на контрола. Следващият пример подава низ, съдържащ пълно препратка към контрола на Eval функция. След това го показва текущата стойност на контролата в диалоговия прозорец.

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

Можете да използвате функцията Eval за достъп до израз оператори, които не са обикновено достъпни в модул Visual Basic for Applications (VBA). Например не можете да използвате SQL оператори между... И или в директно във вашия код, но можете да ги използвате в израз, подадени към функцията Eval .

Следващият пример определя, дали стойността на ShipRegion контрола във формуляр за поръчки е един от няколко указаното състояние съкращенията. Ако полето съдържа една от съкращенията на имената, intState ще бъде True (– 1). Обърнете внимание, че използвате единични кавички ('), за да включите низ в друг низ.

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

Пример

Следващият пример предполага, че имате серия от 50 функции, дефинирани като A1, A2 и т.н. Този пример използва функцията Eval да се обадите всяка функция в серията.

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

Следващият пример води щракнете върху събитие, както ако е натиснат бутон на формуляр. Ако стойността на свойството на бутона OnClick започва със знак за равенство (=), което означава, че той е името на функция Eval функция повиквания функция, която е еквивалентна на задействане щракнете върху събитие. Ако стойността не започва със знак за равенство, стойността трябва да наименувате макрос. RunMacro метод на обекта 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

Забележка : Отказ от отговорност за машинен превод: Тази статия е преведена от компютърна система без човешка намеса. Microsoft предлага тези машинни преводи, за да помогне на потребителите, които не говорят английски, да се възползват от съдържанието за продукти, услуги и технологии на Microsoft. Тъй като статията е преведена машинно, е възможно да съдържа грешки в речника, синтаксиса и граматиката.

Разширете уменията си
Преглед на обучението
Получавайте първи новите функции
Присъединете се към участниците в Office Insider

Беше ли полезна тази информация?

Благодарим ви за обратната връзка!

Благодарим ви за вашата обратна връзка. Изглежда, че ще бъде полезно да ви свържем с един от нашите агенти по поддръжката на Office.

×