powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Не работает свойство Format текстбокса
16 сообщений из 16, страница 1 из 1
Не работает свойство Format текстбокса
    #32341722
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
На сабформе есть ряд текстбоксов. У всех задано:

Код: plaintext
1.
2.
3.
ControlSource = (пусто)
DefaultValue =  "=[Forms]![...]![...]" 
    (это обращение к полям запроса (не контролам) родительской формы)
Format =  "#,##0 ;-#,## 0 "

Разница в том, что:

у некоторых упомянутое поле запроса родительской формы берется прямо из таблицы,

а у некоторых оно вычисляется в запросе при помощи написанной мной функции. Функция описана по необходимости As Variant (поскольку она должна иногда возвращать Null).

В результате у текстбоксов второго типа не работает Format (не показывается запятая). Как это побороть, кроме как переописав функцию As Integer?

Спасибо!
...
Рейтинг: 0 / 0
Не работает свойство Format текстбокса
    #32341728
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовать
Код: plaintext
DefaultValue =  "=Int([Forms]![...]![...])" 

?
...
Рейтинг: 0 / 0
Не работает свойство Format текстбокса
    #32341747
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Понял, попробую. Просто, как все гениальное. Спасибо!
...
Рейтинг: 0 / 0
Не работает свойство Format текстбокса
    #32342292
Если поле-источник может иметь Null, то:
Int([Forms]![...]![...]) или СInt([Forms]![...]![...]) вызовет ошибку.
Правильнее: "=СInt(NZ([Forms]![...]![...];0))"
Если Null нужен только для того, чтобы не показывать 0, то лучше переделать функцию на Integer вместо Variant, а формать указать так:
Format = "#,##0;-#,##0;""""" (т.е. в свойстве: # ##0;-# ##0;"").
...
Рейтинг: 0 / 0
Не работает свойство Format текстбокса
    #32342295
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЕсли поле-источник может иметь Null, то:
Int([Forms]![...]![...]) или СInt([Forms]![...]![...]) вызовет ошибку.
Правильнее: "=СInt(NZ([Forms]![...]![...];0))"
С точностью до наоборот.
...
Рейтинг: 0 / 0
Не работает свойство Format текстбокса
    #32342299
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Debug.Print Int(Null)
даст Null
...
Рейтинг: 0 / 0
Не работает свойство Format текстбокса
    #32342398
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Совет Анатолия и поправка Лоха поступили после того, как я это уже попробовал. В дебаге действительно Int(Null) дает Null, однако в DefaultValue выскакивает при наллах ошибка. Поступлю по совету Анатолия. Спасибо!
...
Рейтинг: 0 / 0
Не работает свойство Format текстбокса
    #32342422
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Однако... А почему же все-таки, если по дефолту попытаться поставить NULL, то ошибка?
...
Рейтинг: 0 / 0
Не работает свойство Format текстбокса
    #32342440
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Темный, не Null, а Int(что-то). И ошибка возникает, когда это что-то IsNull.
...
Рейтинг: 0 / 0
Не работает свойство Format текстбокса
    #32342464
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все равно не понимаю. Мобыть торможу.
B = Null
Int( B )=Null
A = Int( B )
A может быть равно Null
Где ошибка?
...
Рейтинг: 0 / 0
Не работает свойство Format текстбокса
    #32342478
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Видимо, в DefaultValue это работает иначе.
...
Рейтинг: 0 / 0
Не работает свойство Format текстбокса
    #32342484
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин. Я же теперь спать не буду... Пойду тестить
...
Рейтинг: 0 / 0
Не работает свойство Format текстбокса
    #32342607
Сразу говорю - на истину не претендую.
1. Свободное поле можно сравнить с Variant - принимает любое значение.
Другое дело, как Access определяет тип значения. Если произвольное значение
можно подогнать под указанный формат - Access это делает, иначе формат игнорируется. Это если выражение в ControlCource. Если в DefaultValue, то там, похоже, Format не контролируется.
2. Если ссылки на свободные поля используются в критериях запроса, то формат очень фажен, т.к. задает приоритет определения типа значения. Если не указан, или не соответствует, то "Text". Я такое видел в А97. Запрос, выбирающий интервал дат из свободных полей не работал (ничего не возвращал, или - ерунду), пока в полях не был указан формат даты.
3. Применение функций, возвращающих Variant, в вычисляемых полях запроса
по обычно возвращает значения типа "Text". Это можно видеть при выводе запроса на экран. Числа выравниваются по левому краю. Интересная ситуация с IIF(), она возвращает значение с типом, который представлен в аргументе True. Т.е. IIF(...;Число;Null) вернет числовой тип, а IIF(...;Null; Число) - текстовый.
4. И, наконец, по теме. Разница между "=[Forms]![...]![...]" и "=Int([Forms]![...]![...])" большая. В первом случае Access сам определяет тип значения и обрабатывает его на другом уровне, а во втором значение возвращает функция, и если Null, то получается "=Null", а надо "Is Null". Вот и ошибка синтаксиса.
P.S. Речь идет о MDB. В ADP, возможно, по другому.
P.P.S. Кто не согласен - смотрите на первую строчку, и выкладывайте свои мысли о теме, а не обо мне.
P.P.P.S. А как здесь разные мордочки вставляются?
...
Рейтинг: 0 / 0
Не работает свойство Format текстбокса
    #32342609
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ниче не понимаю
У меня дома (в аксесе ХР правда):
а) Не вываливает никаких ошибок при DefaultValue = "=Int(Forms и т.д.)"
б) Отлично работает формат при DefaultValue = "=Forms и т.д.)"

завтра буду в 97-м проверять.
...
Рейтинг: 0 / 0
Не работает свойство Format текстбокса
    #32342643
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Интересно, что меня никто не ткнул в то, что я не указал версию Аксесса. Я, когда писал вопрос, задумался над этим, но не указал. А он действительно 97.

А картинки вставляются так:

[img=...]
...
Рейтинг: 0 / 0
Не работает свойство Format текстбокса
    #32342648
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Абырвалг, блин
А я пытаюсь понять, почему у мя работает
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Не работает свойство Format текстбокса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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