Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Математические вычисления значений / 11 сообщений из 11, страница 1 из 1
22.04.2004, 17:42
    #32492596
Мари
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Математические вычисления значений
Поделитесь ( кто сталкивался ) как лучше организовать математические расчеты по формулам. Желательно вывести потом формулы пользователям для возможности менять их. Или вообще хоть что-нибудь по сложным вычислениям, пожалуйста.
...
Рейтинг: 0 / 0
22.04.2004, 17:48
    #32492620
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Математические вычисления значений
Пришла мне в голову функция Eval...
...
Рейтинг: 0 / 0
22.04.2004, 17:50
    #32492634
Мари
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Математические вычисления значений
А чуть подробней?
...
Рейтинг: 0 / 0
22.04.2004, 17:54
    #32492651
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Математические вычисления значений
Принимает стринг. Анализирует как выражение и вычисляет.

dim s as string
s = "1+2"
debug.print eval(s)

- выдаст 3.
...
Рейтинг: 0 / 0
22.04.2004, 18:04
    #32492684
Мари
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Математические вычисления значений
Спасибо большое, попробую. А как дать возможность менять формулу?
...
Рейтинг: 0 / 0
22.04.2004, 18:07
    #32492692
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Математические вычисления значений
Как любые данные. Открыть на экране и пусть редактируют. Правда, при этом будет плохо, если они нарушат синтаксис.

Другой вариант - написать какой-то интерфейс типа майкрософтовского редактора формул. Чтобы он сам проверял правильность и сам переводил в синтаксис Аксесса и обратно. Думаю, что задачка не из легких.
...
Рейтинг: 0 / 0
22.04.2004, 18:14
    #32492706
Мари
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Математические вычисления значений
Спасибо, мне нельзя "нарушать", у меня производство...
...
Рейтинг: 0 / 0
22.04.2004, 18:17
    #32492714
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Математические вычисления значений
Тогда в момент сохранения формулы можно пробовать ее запустить - и если будет ошибка, то не сохранять, а продолжать редактировать.
...
Рейтинг: 0 / 0
22.04.2004, 18:27
    #32492727
Мари
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Математические вычисления значений
Извините, Владимир, а если нужно вычислить корень (x1*x2)/(x3+x4), где
x1,x2,x3... -поле таблицы 1, как записать Eval?
...
Рейтинг: 0 / 0
22.04.2004, 18:33
    #32492739
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Математические вычисления значений
Исходная строка:
s = "sqr((x1*x2)/(x3+x4))"
Дальше запускаем замену:
s = replace(s, "x1", cstr(dlookup("x1", "mytable")))
s = replace(s, "x2", cstr(dlookup("x2", "mytable")))
s = replace(s, "x3", cstr(dlookup("x3", "mytable")))
s = replace(s, "x4", cstr(dlookup("x4", "mytable")))
И после этого запускаем Eval.
...
Рейтинг: 0 / 0
22.04.2004, 19:10
    #32492791
Мари
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Математические вычисления значений
Спасибо огромное, попробую.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Математические вычисления значений / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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