powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ACCESS 2003 - Через ADO.NET - Undefined function in expression. Внутри ACCESS-а - работает
4 сообщений из 4, страница 1 из 1
ACCESS 2003 - Через ADO.NET - Undefined function in expression. Внутри ACCESS-а - работает
    #39953750
Фотография Vakho
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Windows XP.
MS Access 2003.
Visual Studio 2010 Ultimate

1) В Access-е создал Query MyQuery к таблице MyTable :
Код: sql
1.
SELECT A, FormatNumber((A / 3.14), 2) AS B FROM MyTable


Щёлкнул по MyQuery мышкой в Access-е - сработало !

2) Теперь десктоп приложение через ADO.NET отправляет к базе данных этот же запрос:
Код: sql
1.
SELECT A, FormatNumber((A / 3.14), 2) AS B FROM MyTable


Отказ: Undefined function 'FormatNumber' in expression.

3) ОК. Решил, что ADO.NET что-то не так делает, и чере десктоп приложение
через ADO.NET отправил к базе данных запрос непосредственно к MyQuery :
Код: sql
1.
SELECT * FROM MyQuery


Отказ: Undefined function 'FormatNumber' in expression.

Что не так ?
Спасибо.

PS. Почему MS Access 2003?
Производственная необходимость.
...
Рейтинг: 0 / 0
ACCESS 2003 - Через ADO.NET - Undefined function in expression. Внутри ACCESS-а - работает
    #39953758
Фотография Vakho
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заменил функцию FormatNumber на Format :
Код: sql
1.
SELECT A, Format((A / 3.14), '0.##') AS B FROM MyTable


и всё заработало.

Такие дела.
...
Рейтинг: 0 / 0
ACCESS 2003 - Через ADO.NET - Undefined function in expression. Внутри ACCESS-а - работает
    #39953909
Vakho
1) В Access-е создал Query MyQuery к таблице MyTable :
Код: sql
1.
SELECT A, FormatNumber((A / 3.14), 2) AS B FROM MyTable


Щёлкнул по MyQuery мышкой в Access-е - сработало

В VBA нет встроенной функции FormatNumber. Если сработало, значит конкретно в этой БД есть рукописная функция. Ну, или подключена библиотека с такой функцией.
Но даже в другой БД Акса такое, вероятнее всего, работать не будет.

За пределами Акса не будет работать NZ, DLookup, DSum и т.п.

Что касается функции Format, то это более универсальное решение, но тоже надо осторожнее. Она преобразует число (или дату) в строку с учетом настроек конкретного компа (например, десятичный разделитель). Для начала определитесь, зачем вам функция Format именно в запросе. Где вы его используете?
...
Рейтинг: 0 / 0
ACCESS 2003 - Через ADO.NET - Undefined function in expression. Внутри ACCESS-а - работает
    #39954018
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кривцов Анатолий
В VBA нет встроенной функции FormatNumber

По крайней мере в MSA 2010 есть. А также есть FormatCurrency, FormatDateTime, FormatPercent. Насколько помню в 2003 они отсутствовали. В 2007 не знаю.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ACCESS 2003 - Через ADO.NET - Undefined function in expression. Внутри ACCESS-а - работает
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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