powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Разделитель разрядов
12 сообщений из 12, страница 1 из 1
Разделитель разрядов
    #39104076
Чип&Дейл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, подскажите как поменять в Access разделитель разрядов или какое-нибудь другое решение.
При выполнении запроса происходит деление в результате чего получается 0,5, затем происходит умножение суммы на 0,5 и в итоге получаем 0. Если поменять выражение на просто 0,5 результат тот же, а если записать 0.5 то считает.
...
Рейтинг: 0 / 0
Разделитель разрядов
    #39104099
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чип&Дейл,
Я думаю, если запрос выполняется над числами, а не над текстом, то в результате получается 0.5, а не 0,5. Я иемю ввиду - реальное значенеие, а не представляемое на экране. Комп воспринимает 0,5 не как число, а как стринг. Поэтому, надо умножать именно на 0.5. Иначе, можно еще и получить ошибку мсполнения
...
Рейтинг: 0 / 0
Разделитель разрядов
    #39104101
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чип&ДейлПри выполнении запроса происходит деление в результате чего получается 0,5, затем происходит умножение суммы на 0,5 и в итоге получаем 0. Если поменять выражение на просто 0,5 результат тот же, а если записать 0.5 то считает.
А нефиг преобразовывать чисельные типы в строковые.
Текст запроса в студию.
...
Рейтинг: 0 / 0
Разделитель разрядов
    #39104108
Чип&Дейл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
SELECT SPR.otdel, SPR.servis, SPR.SCHIFRZ, SPR.naimz, SPR.kalked, SPR.Priz_Kat, SPR.skidka, SPR.STOIM,  SPR.OBJOMgod/SPR.period AS Del, Round(SPR.skidka*SPR.STOIM*(SPR.OBJOMgod/SPR.period),2) AS Выражение1, SPR.period, SPR.skidka*SPR.STOIM*SPR.period*(SPR.OBJOMgod/SPR.period ) as Итог
FROM SPR


В результате итог = 0, а должен быть 60000
| otdel | servis | SCHIFRZ | naimz | kalked | Priz_kat | skidka | Stoim | Del | Выражение1 | period | Итог |
5 13 69 под. шт. 0 1 10000 0,5 5000 12 0
...
Рейтинг: 0 / 0
Разделитель разрядов
    #39104120
D.B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
D.B
Гость
AkinaА нефиг преобразовывать чисельные типы в строковые.
Текст запроса в студию.
Если я не ошибаюсь , то такое происходит , если запрос делать динамически из VBA , так как в Access запятая , а в VBA точка . Но тогда вроде как запрос не отрабатывается , выскакивает ошибка исполнения . Где то я с таким сталкивался.
...
Рейтинг: 0 / 0
Разделитель разрядов
    #39104128
Чип&Дейл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В том то и дело что он отрабатывает как в самом Access так и в VBA одинаково.
...
Рейтинг: 0 / 0
Разделитель разрядов
    #39104131
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Видимо поле SPR.skidka текстовое.
А должно быть числовым.
...
Рейтинг: 0 / 0
Разделитель разрядов
    #39104187
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Видимо поле SPR.skidka текстовое.
Вряд ли. Смотри:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SELECT
  SPR.otdel -- 5
, SPR.servis -- 13
, SPR.SCHIFRZ --69
, SPR.naimz -- под.
, SPR.kalked -- шт.
, SPR.Priz_Kat -- 0
, SPR.skidka -- 1
, SPR.STOIM -- 10000
,  SPR.OBJOMgod/SPR.period AS Del -- 0,5
, Round(SPR.skidka*SPR.STOIM           *(SPR.OBJOMgod/SPR.period),2) AS Выражение1 -- 5000
, SPR.period -- 12
,       SPR.skidka*SPR.STOIM*SPR.period*(SPR.OBJOMgod/SPR.period) as Итог -- 0
FROM SPR


Проблема - с последним полем [Итог]. Но оно отличается от поля [Выражение1] выше только использованием дополнительно поля SPR.period, которое уже "обелено" нормальным вычислением поля Del.

Проблема где-то ещё. И не факт, что она в разделителе.

Думаю, что некоторым товарищам пора приложить базу к сообщению.
...
Рейтинг: 0 / 0
Разделитель разрядов
    #39104214
Agapov_stas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что у Вас в настройках системы?(см.пик, где смотреть)
...
Рейтинг: 0 / 0
Разделитель разрядов
    #39104230
Чип&Дейл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В настройках системах была "," сменил ".", не помогло.
Сейчас сделаю базу данных убрав все лишнее
...
Рейтинг: 0 / 0
Разделитель разрядов
    #39104251
Подозреваю, что Акс именно в этом выражении результат деления в скобках приводит к целочисленному виду, т.е.:
Код: vbnet
1.
2.
?CInt(0.5) 
 0

Для начала попробуйте убрать скобки или перенести (SPR.OBJOMgod/SPR.period) в начало выражения.
...
Рейтинг: 0 / 0
Разделитель разрядов
    #39104257
Чип&Дейл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделал базу, после смены разделителя в настройках системы считает правильно, по крайне мере у меня, но думаю так не должно быть чтобы работы приложения зависела от настроек windows хотя могу ошибаться.
Записал в rar потому что база изначально весит 1,5МБ.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Разделитель разрядов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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