Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: форматирование числового <TextBox>
 
 автор: bimon   (04.02.2012 в 11:58)   личное сообщение
 
 

Добрый день! Помогите ,пожалуйста, решить проблемку.
Форматирую числовое поле в форме след образом--> # ###,##;(# ###,##);[RED];"" + DecimalPalces=Auto

Все нормально, кроме целых чисел. Получаю типа 22, или (454),
Как избавиться от запятой! Спасибо

  Ответить  
 
 автор: ДрЮня   (04.02.2012 в 12:57)   личное сообщение
 
 

можно попробовать анализировать данные, если целое, то одна ветка, если нет - другая
Точно не помню, есть ли в аксесе IsInteger(), СInt()

  Ответить  
 
 автор: bimon   (04.02.2012 в 13:04)   личное сообщение
 
 

я пробовал в <Properties,Format> вставить конструкцию IIF. Не получилось!

  Ответить  
 
 автор: snipe   (04.02.2012 в 13:28)   личное сообщение
 
 

в форме(а не в таблице) на поле повешать маску ввода (это для юзеров)
на событие после обновления поля повешать код который будет избавляться от ненужных знаков

  Ответить  
 
 автор: bimon   (04.02.2012 в 14:29)   личное сообщение
 
 

но форма не редактируемая, только вывод на экран . Она большая (на весь экран с прокрутками) - (оборотная ведомость по складу) и содержит в основном цифровые данные.
И поэтому заказчик просит
1 Убрать нули
2 Если число отрицательное то его выделить красным
3 Если число целое то показывать только целую часть

Не получается 3 пункт

  Ответить  
 
 автор: kot_k_k   (04.02.2012 в 14:35)   личное сообщение
 
 

2 - Если число отрицательное то его выделить красным - условное форматирование

1 - через iif - или тоже через условное форматирование - если 0 - белый шрифт, если меньше - красный - остальное по умолчанию черный.)

3 - а в свойствах поля "Число десятичных знаков" - поставить "Авто"

  Ответить  
 
 автор: kot_k_k   (04.02.2012 в 14:38)   личное сообщение
 
 

блин - ну вас, с вашим Масковским временем - глянул на время сообщения 14-35 - дернуло как током - я уже как час должен в пути находится, у нас то 12-35 (размахивая жёвто-блакитным прапором)

  Ответить  
 
 автор: bimon   (04.02.2012 в 14:49)   личное сообщение
 
 

все так но мне не удается воспользоваться IIF. При вводе operatora IIF в строку форматирования он конвертируется в "IIF ..." и получаетчя ерунда. Подскажите формат для условного форматирования по цвету! Почему он не берет : [Black];[Red];"" --> я опробовал его , но тогда число вообще не выводтся

  Ответить  
 
 автор: kot_k_k   (04.02.2012 в 14:52)   личное сообщение
 
 

ПРАВАЯ кнопка мыша на поле - "Условное форматирование" (4-я строка с низу) - поялвяется окно - и там выбьираем нужные варианты по цвету и значениям

а IIF нужно писать в самом поле = IIF(имя_поля=0;"";имя_поля) - тебе и без IIF можно жить в данном случае

  Ответить  
 
 автор: kot_k_k   (04.02.2012 в 14:54)   личное сообщение
51 Кб.
 
 

вот это окно

  Ответить  
 
 автор: snipe   (04.02.2012 в 15:07)   личное сообщение
 
 

ТОлько стоять должно не Значение поля а Выражения
(равно не надо)

условие можно написать так
iif([число]-int([число])=0;int([число]);[число])

  Ответить  
 
 автор: bimon   (04.02.2012 в 15:34)   личное сообщение
 
 

у меня старая версия Access (97) , где условного форматирования нет!

  Ответить  
 
 автор: snipe   (04.02.2012 в 16:09)   личное сообщение
 
 

акс 97 не видел
интересно как вы красный получили

но вернемся к нашим баранам
а как происходит процесс форматирования
я вот про это


Форматирую числовое поле в форме след образом-->


и как это стыкуется с этим


но форма не редактируемая, только вывод на экран



а то чего-то я запутался и ни чего не понял


может источник записей формы делать не на основе таблицы а на основе запроса и там применить iif(.....)

  Ответить  
 
 автор: bimon   (04.02.2012 в 17:46)   личное сообщение
58 Кб.
 
 

Форматирую числовое поле в форме след образом--> ...?
форматируется в <DesignView>! Окно <Properties> текстового блока высылаю (2 и 3 строки сверху)

  Ответить  
 
 автор: Анатолий (Киев)   (06.02.2012 в 15:39)   личное сообщение
 
 

У вас форма ленточная/табличная? Если да, то в А97 задача решаема только в отчете.

  Ответить  
 
 автор: bimon   (08.02.2012 в 23:45)   личное сообщение
 
 

Спасибо за инфо. Форма имеет тип <Continuous Forms>. Тогда подскажите как проблема решаема в отчете?

  Ответить  
 
 автор: kot_k_k   (09.02.2012 в 10:08)   личное сообщение
 
 

обработка события "Форматирование" (или Печать) для области где находится поле и там можно программно извращаться как угодно -

if me.поле<0 then
me.поле .ForeColor= vbRed
else
me.поле .ForeColor= 0
end if

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList