|
|
|
Округление данных в таблице
|
|||
|---|---|---|---|
|
#18+
Парни, ситуация такая. 1. Надо округлять данные в запросах до целых чисел, причем в идеале должно округляться таким образом. что бы например если стоит 1,1 округлять до 2. 2. Если ставишь в свойстве поля запроса Формат поля -> Фиксированный -> Число десятичных знаков = 0 то значение в этом поле при просмотре Запроса показывается как округленное до целого, но в других запросах, берущих данные из этого запроса, это значение не округленное. Также в отчете по этому запросу печатается не округленное значение. Т.е. например, если значение выходит 1.55 то при просмотре Запроса оно 2, но в других запросах оно снова 1.55 и в отчете оно 1.55. Вопрос: Можно решить эти проблемы, не прибегая к програмированию, используя стандартные средства Access Если все таки нужно програмировать,поделитесь строчками кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2003, 12:57 |
|
||
|
Округление данных в таблице
|
|||
|---|---|---|---|
|
#18+
см. здесь /topic/31080 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2003, 13:11 |
|
||
|
Округление данных в таблице
|
|||
|---|---|---|---|
|
#18+
Парни, стуация такая. что я полный чайник в програмировании в MSA я сисадмин и надо очень быстро сделать базу данных под ACCEESS Все что в моих силах, я сделал,базу с помощью визуальных средств MSA и небольших запросах, но вот эта проблема - ОКРУГЛЕНИЕ ЧИСЕЛ В ЗАПРОСАХ мне уже все мозги заканопатила, а время идет. ГУРУ MSA, если вам не будет в лом, напишите ПОСЛЕДОВАТЕЛЬНОСТЬ ДЕЙСТВИЙ, как можно добавить КОД В ЗАПРОС? Как вообще решить эту проблему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2003, 13:55 |
|
||
|
Округление данных в таблице
|
|||
|---|---|---|---|
|
#18+
А я программист на Акесе, и мне надо быстро поднять контролер домена и развернуть IIS. В запросе (если у тебя акес2000/2002) используй функцию Round(ИмяПоляЗапроса, Точность) Select Round(Pole1,2) From Table1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2003, 14:01 |
|
||
|
Округление данных в таблице
|
|||
|---|---|---|---|
|
#18+
Уважаемый Senin Viktor. Подскажите пож-та недоумку, как вставить эту функцию в запрос? куда нажать, за что дернуть и etc ... Есть запрос и есть в запросе ПОЛЕ, куда я написал формулу. Нить: IIf([Гориз]![Шир]<130;2*([Гориз]![Шир]/100)+4*([Гориз]![Выс]/100);4*([Гориз]![Шир]/100)+8*([Гориз]![Выс]/100))+([Гориз]![Нить]/100) Теперь надо, что бы значение в этом ПОЛЕ на выходе округлялось. Виктор, я понимаю, что вопрос для вас тупой и не заслуживающий даже того, что бы ответить, но уж так приспичило, что прям вой =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2003, 16:58 |
|
||
|
Округление данных в таблице
|
|||
|---|---|---|---|
|
#18+
Виктор только не забудь сказать КАК округляет твоя функция round() поскольку дисскусия уже была по этом поводу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2003, 17:06 |
|
||
|
Округление данных в таблице
|
|||
|---|---|---|---|
|
#18+
>но уж так приспичило, что прям вой Ну если ТАК приспичело, что же ты свой топик бросил на 4 часа-то? Например, с точностью до 3 знаков: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2003, 17:09 |
|
||
|
Округление данных в таблице
|
|||
|---|---|---|---|
|
#18+
2Хам А я и не забыл см. топик от 13:11. Узнаешь? К тому же dave604 вроде Инженер - для него будет привычно способ округления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2003, 17:11 |
|
||
|
Округление данных в таблице
|
|||
|---|---|---|---|
|
#18+
Виктор, спасибо! Дай бог те денег побольше! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2003, 17:21 |
|
||
|
Округление данных в таблице
|
|||
|---|---|---|---|
|
#18+
>Дай бог те денег побольше! Вот толковое "Спасибо", его бы еще обналичить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2003, 17:25 |
|
||
|
Округление данных в таблице
|
|||
|---|---|---|---|
|
#18+
Виктор, позвольте быть до конца наглым и спросить Вас, а как можно округлить до большего данное поле? Например, получаеся 1.3 а надо на выходе иметь 2? Можно ли это сделать с помощью Round ??? По ссылке есть от 13:11 есть что то подобное в виде ФУНКЦИЙ, но я, к моему огромному стыду, не знаю, куда и как вставлять эти функции в запросе. Как всегда по возможности подробный алгоритм для тупых =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2003, 17:37 |
|
||
|
Округление данных в таблице
|
|||
|---|---|---|---|
|
#18+
Нашел вот это, утверждается, что округляет до большего Function MyRound(n,p) pow=10^p MyRound=-int(-n*pow)/pow End Function Правильно ли это и если да, то как это применимо именно к моему случаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2003, 17:40 |
|
||
|
Округление данных в таблице
|
|||
|---|---|---|---|
|
#18+
Лично я использую Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Например, ? okrug (1550,-2) даст 1500 ? okrug (1550,-3) даст 2000 ? okrug (1550,-4) даст 0 Вставь данную функцию в модуль, если модуля нет - создай. Вместо Round напиши okrug (можешь вообще переименовать функцию как душе угодно, например Public Function RoundMy(Number As Variant, NumDigits As Long) As Double Тогда и вызывай как RoundMy ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2003, 17:54 |
|
||
|
Округление данных в таблице
|
|||
|---|---|---|---|
|
#18+
Ок, спасибо, завтра попробую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2003, 17:55 |
|
||
|
Округление данных в таблице
|
|||
|---|---|---|---|
|
#18+
Виктор, привет. Короче, смотри. 1 - создал модуот okrug Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 2 - написал в запросе формулу Код: plaintext Access при выполнении запроса выдает Код: plaintext Виктор, в чем может быть дело? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 09:52 |
|
||
|
Округление данных в таблице
|
|||
|---|---|---|---|
|
#18+
>в чем может быть дело? В том что данной функции для Акеса нет . Ты создал модуль в той же базе, где и запрос. Откомпилировал и сохранил. Функция объявлена как Public - все должно работать. Попробуй в Immediate окне (Ctrl+G) в модуле набрать ? okrug (25555.555, 0) и нажать ввод - если выдаст значение, то все нормально и в запросе эта функция тоже должна работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 10:38 |
|
||
|
Округление данных в таблице
|
|||
|---|---|---|---|
|
#18+
Господа, прошу многа-многа прощения, но почему 0.49??? А почему не 0.499, например? Имхо, должно быть так: если округление к ближайшему, то 0.5, а если вверх, как было попрошено изначально (чтобы 1.1 округляло к 2), то вообще надо юзаться обо что-нибудь типа -Int(-x). На всякий случай из хелпа: The difference between Int and Fix is that if number is negative, Int returns the first negative integer less than or equal to number, whereas Fix returns the first negative integer greater than or equal to number. For example, Int converts -8.4 to -9, and Fix converts -8.4 to -8. Вот на этом "Int converts -8.4 to -9" можно сыграть для округления вверх. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 10:50 |
|
||
|
Округление данных в таблице
|
|||
|---|---|---|---|
|
#18+
Вот-вот что то типа iif(number<0,int(number),int(number)+1) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 10:58 |
|
||
|
Округление данных в таблице
|
|||
|---|---|---|---|
|
#18+
sorry,конечно iif(number<0,abs(int(number)),int(number)+1) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 11:00 |
|
||
|
Округление данных в таблице
|
|||
|---|---|---|---|
|
#18+
VIG, thanx. Только без abs было лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 11:05 |
|
||
|
Округление данных в таблице
|
|||
|---|---|---|---|
|
#18+
>Господа, прошу многа-многа прощения, но почему 0.49??? А почему не 0.499, например? \r \r В /topic/31080 топик от 6 май 03, 17:51 я писал\r \r Зато можно управлять округлением, если поставить +0,49 - то в меньшую, если оставить как есть +0,5 - то в большую. \r \r \r т.е. при 0,49\r ? okrug(1.75,1) - 1,7\r при 0,50\r ? okrug(1.75,1) - 1,8\r \r А .499 или .499999999999 это уже значения не играет - все-равно далее будет Int(,4999999) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 11:16 |
|
||
|
Округление данных в таблице
|
|||
|---|---|---|---|
|
#18+
Виктор, если сделать 0.49, то весь интервал от 0.49 до 0.5 будет обрабатываться неправильно. Если 0.4999 - от соответственно от 0.4999 до 0.5. Возьми как пример не 1.75, а 1.494. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 11:22 |
|
||
|
Округление данных в таблице
|
|||
|---|---|---|---|
|
#18+
Виктор, при вызове ? okrug (1550,-2) выдает Код: plaintext 1. Как я понимаю, он Акеc ругается на отсутсвие модуля. но модуль okrug в МОДУЛЯХ у меня есть. Может при создании его я что-то пропустил, делал по следующей схеме: 1 - в МОДУЛЯХ нажал СОЗДАТЬ, открылось окно VB, куда я внес сам код 2 - нажал на сохранить. Сохранил как okrug. 3 - в окошке МОДУЛИ базы появился модель okrug. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 11:26 |
|
||
|
Округление данных в таблице
|
|||
|---|---|---|---|
|
#18+
> Expected variable or procedure, not module Оно кричит на то, что модуль называется так же, как функция. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 11:27 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32197612&tid=1680722]: |
0ms |
get settings: |
11ms |
get forum list: |
21ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
96ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
92ms |
get tp. blocked users: |
2ms |
| others: | 250ms |
| total: | 500ms |

| 0 / 0 |
