powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Переделать денежные данные 36.5р в строку 35 руб. 50 коп. в SQL запросе
9 сообщений из 9, страница 1 из 1
Переделать денежные данные 36.5р в строку 35 руб. 50 коп. в SQL запросе
    #32060327
AndreyE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Переделать денежные данные 36.5р в строку 35 руб. 50 коп. в SQL запросе. Есть ли такая фунция или как ЭТО сделать?
...
Рейтинг: 0 / 0
Переделать денежные данные 36.5р в строку 35 руб. 50 коп. в SQL запросе
    #32060353
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
SELECT ROUND(MyPrice) &  " руб. "  & ROUND(ROUND((MyPrice-ROUND(MyPrice))* 100 )) & " коп. " 
...
Рейтинг: 0 / 0
Переделать денежные данные 36.5р в строку 35 руб. 50 коп. в SQL запросе
    #32060359
Фотография AlexJuice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Между прочим, интересную проблему поднимаете!
Дело в том, что Аксесс не понимает в запросе встроенную функцию 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
Переделать денежные данные 36.5р в строку 35 руб. 50 коп. в SQL запросе
    #32060533
AndreyE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здорово!
AlexJuice, а можно если копейки нулевые их не печатать?
...
Рейтинг: 0 / 0
Переделать денежные данные 36.5р в строку 35 руб. 50 коп. в SQL запросе
    #32060534
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
Переделать денежные данные 36.5р в строку 35 руб. 50 коп. в SQL запросе
    #32060547
AndreyE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А модуле ReplMy как?
...
Рейтинг: 0 / 0
Переделать денежные данные 36.5р в строку 35 руб. 50 коп. в SQL запросе
    #32060579
Фотография AlexJuice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> А модуле ReplMy как?
Может, остановимся на варианте от mahoune?
...
Рейтинг: 0 / 0
Переделать денежные данные 36.5р в строку 35 руб. 50 коп. в SQL запросе
    #32060590
AndreyE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У него какой-то минусик печатается.

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

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

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

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


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