Перейти до основного
Підтримка
Вхід
Вхід за допомогою облікового запису Microsoft
Увійдіть або створіть обліковий запис.
Вітаємо,
Виберіть інший обліковий запис.
У вас є кілька облікових записів
Виберіть обліковий запис, за допомогою якого потрібно ввійти.

За допомогою функції 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 повертає значення типу Variant, яке є рядком або числовим типом.

Аргумент stringexpr має бути виразом, що зберігається в рядку. Якщо передати функції Eval рядок, що не містить числового виразу або імені функції, а лише простий текстовий рядок, станеться помилка виконання. Наприклад, Eval("Smith") призведе до помилки.

Ви можете використати функцію Eval, щоб визначити значення, яке зберігається у властивості Value елемента керування. У наведеному нижче прикладі рядок, що містить повне посилання на елемент керування, передається до функції 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 Between…And та In не можна використовувати безпосередньо в коді, але їх можна використовувати у виразі, що передається до функції Eval.

У наступному прикладі визначається, чи значення елемента керування ShipRegion у формі "Замовлення" належить до зазначених абревіатур штатів. Якщо поле містить одне з цих скорочень, intState матиме значення True (–1). Зверніть увагу: щоб включити один рядок в інший, використовуються одинарні лапки (').

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

Приклади запитів

Вираз

Результати

SELECT Eval("15+3") AS ВИРАЗ1 FROM ProductSales GROUP BY Eval("15+3");

Обчислює значення рядка та обчислює результат. Результат: 18.

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

Обчислює значення рядка, визначає функції та виконує їх. Результат: поточна системна дата + поточний місяць, що відображається в стовпці "NewDate".

Приклади VBA

У наведеному нижче прикладі припускається, що у вас є ряд із 50 функцій, визначених як A1, A2 і т. д. У цьому прикладі функцію Eval використано, щоб викликати кожну функцію з цього ряду.

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

У наступному прикладі подія Click запускається так, ніби користувач натиснув кнопку у формі. Якщо значення властивості OnClick кнопки починається зі знака рівності (=), вказуючи на те, що це ім’я функції, то функція Eval викликає функцію, еквівалентну до запуску події Click. Якщо значення не починається зі знака рівності, то воно називає макрос. Метод 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. Ваш ІТ-адміністратор зможе збирати ці дані. Декларація про конфіденційність.

Дякуємо за відгук!

×