powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как в Eval передать параметры функции?
6 сообщений из 6, страница 1 из 1
Как в Eval передать параметры функции?
    #32028825
AlexLexus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте господа!
Помогите в решении следующего вопроса.

Не работает конструкция:

Function f(x As Long, y As long)
f=x*y
End Function

Sub primer()
Dim a As Long
Dim b As Long
Dim s As String

a=1
b=2
s="f(a,b)"

Eval(s)

End Sub

На строке Eval(s) выдает ошибку.
Может ли кто нибудь объяснить, что тут не так?
...
Рейтинг: 0 / 0
Как в Eval передать параметры функции?
    #32029131
BAlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А текст ошибки как звучит?
...
Рейтинг: 0 / 0
Как в Eval передать параметры функции?
    #32029251
AlexLexus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
№ ошибки: 2482
Приложению "Microsoft Access" не удается найти имя 'а' из этого выражения.
...
Рейтинг: 0 / 0
Как в Eval передать параметры функции?
    #32029289
BAlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С Eval() я никогда не работал. А ваша функция f значение какое возвращает?
...
Рейтинг: 0 / 0
Как в Eval передать параметры функции?
    #32029319
AlexLexus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, допустим, long. Но это не столь важно, т.к. в начальном вопросе я привел упрощенный пример.

На самом деле все довольно запутанней.

У меня есть набор функций, допустим f1(), f2(), ....., f85()
У каждой из этих функций свой набор параметров. Max кол-во параметров=7.
Тип данных значений, возвращаемый функциями разный. Допустим f(1) As Long, f(2) As Double,
f(3) As String и т.д.

Далее в том или ином месте кода мне нужно вызвать одну из этих функций, но я заранее не знаю какую, т.к. это зависит от определенных условий.

Чтобы не рисовать Select Case из 85 Сase`ов я поступил так:

создал таблицу из 2-х полей:
1-е поле - № функции,
2-е поле - строка с самой функцией.
Например:
1 f1(x,y)
2 f2(x,y,z)
3 f3(x)
4 f4(x,y,z,a,b)
и т.д.

Затем перед вызовом функции извлекаю из этой таблицы строку, содержащую функцию, в какую нибудь переменную (например ss), и с помощью Eval(ss) делаю вызов этой функции.

Но эта зараза не хочет работать.
Вот так!
...
Рейтинг: 0 / 0
Как в Eval передать параметры функции?
    #32029325
Ольга
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запись для строки в вашем примере должна выглядеть так
s = "f(" & Format(a) & "," & Format(b) & ")"
Проверьте, у меня работает
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как в Eval передать параметры функции?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]