Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Переделать денежные данные 36.5р в строку 35 руб. 50 коп. в SQL запросе / 9 сообщений из 9, страница 1 из 1
21.10.2002, 16:14
    #32060327
AndreyE
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переделать денежные данные 36.5р в строку 35 руб. 50 коп. в SQL запросе
Переделать денежные данные 36.5р в строку 35 руб. 50 коп. в SQL запросе. Есть ли такая фунция или как ЭТО сделать?
...
Рейтинг: 0 / 0
21.10.2002, 16:38
    #32060353
mahoune
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переделать денежные данные 36.5р в строку 35 руб. 50 коп. в SQL запросе
Код: plaintext
1.
SELECT ROUND(MyPrice) &  " руб. "  & ROUND(ROUND((MyPrice-ROUND(MyPrice))* 100 )) & " коп. " 
...
Рейтинг: 0 / 0
21.10.2002, 16:45
    #32060359
AlexJuice
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переделать денежные данные 36.5р в строку 35 руб. 50 коп. в SQL запросе
Между прочим, интересную проблему поднимаете!
Дело в том, что Аксесс не понимает в запросе встроенную функцию Replace. А если создать ее аналог самому, то поймет!
1. Создаем в любом модуле функцию:
Код: plaintext
1.
2.
3.
4.
5.
Public Function ReplMy(curWhere As Currency, strFrom As String, strTo As String) As String
Dim strWhere As String
strWhere = Replace(CStr(Format(curWhere,  "0 . 00 ")), strFrom, strTo)
ReplMy = strWhere
End Function


2. В запросе пишем:
Код: plaintext
SELECT ReplMy(ДенежноеПоле]; "," ; " руб. " ) &  " коп."  AS MyMoney


Правда, в этом случае из 36 рублей 35 вряд ли получится ;4)
...
Рейтинг: 0 / 0
22.10.2002, 09:11
    #32060533
AndreyE
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переделать денежные данные 36.5р в строку 35 руб. 50 коп. в SQL запросе
Здорово!
AlexJuice, а можно если копейки нулевые их не печатать?
...
Рейтинг: 0 / 0
22.10.2002, 09:14
    #32060534
mahoune
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переделать денежные данные 36.5р в строку 35 руб. 50 коп. в SQL запросе
Код: plaintext
1.
2.
3.
4.
5.
SELECT
ROUND(MyPrice) &  " руб. "  & IIF(
  (ROUND(ROUND((MyPrice-ROUND(MyPrice))* 100 ))= 0 ),
  ROUND(ROUND((MyPrice-ROUND(MyPrice))* 100 )) & " коп. " ,
  ""
)
...
Рейтинг: 0 / 0
22.10.2002, 09:46
    #32060547
AndreyE
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переделать денежные данные 36.5р в строку 35 руб. 50 коп. в SQL запросе
А модуле ReplMy как?
...
Рейтинг: 0 / 0
22.10.2002, 10:42
    #32060579
AlexJuice
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переделать денежные данные 36.5р в строку 35 руб. 50 коп. в SQL запросе
> А модуле ReplMy как?
Может, остановимся на варианте от mahoune?
...
Рейтинг: 0 / 0
22.10.2002, 10:59
    #32060590
AndreyE
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переделать денежные данные 36.5р в строку 35 руб. 50 коп. в SQL запросе
У него какой-то минусик печатается.

1 руб. 20 коп.
10 руб. -40 коп.
108 руб.
11 руб.
11 руб. -20 коп.
11 руб. -20 коп.
11 руб. 40 коп.
11 руб. 40 коп.
114 руб.
116 руб. 40 коп.
118 руб. -40 коп.

Откуда берется?
...
Рейтинг: 0 / 0
22.10.2002, 12:13
    #32060646
AlexJuice
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переделать денежные данные 36.5р в строку 35 руб. 50 коп. в SQL запросе
> Откуда берется?
Боюсь, что ROUND не в ту сторону округляет.
Там происходит вычитание вместо сложения.

> AlexJuice, а можно если копейки нулевые их не печатать?
Можно, но боюсь, что не сегодня ;4)
У нас запарка

> А модуле ReplMy как?
В каком смысле?
Создаем модуль (не привязанный к форме), в него помещаем эту функцию и сохраняем.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Переделать денежные данные 36.5р в строку 35 руб. 50 коп. в SQL запросе / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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