powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Формат аргументов функции IIf
11 сообщений из 11, страница 1 из 1
Формат аргументов функции IIf
    #39167385
Energetik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Access 2007.
Применяю в запросе функцию IIf для выбора коэффициентов. Коэффициенты должны быть числового формата для последующих вычислений.
Вот один пример:
Норма времени: IIf([Реестр]![Диаметр трубопроводов]="";"";IIf([Реестр]![Диаметр трубопроводов]<109;"3.7";IIf([Реестр]![Диаметр трубопроводов]<220;"4.7";IIf([Реестр]![Диаметр трубопроводов]<326;"5.8";IIf([Реестр]![Диаметр трубопроводов]<427;"7.0";IIf([Реестр]![Диаметр трубопроводов]<631;"8.4";IIf([Реестр]![Диаметр трубопроводов]<821;"10.1";IIf([Реестр]![Диаметр трубопроводов]<1021;"11.2";IIf([Реестр]![Диаметр трубопроводов]<1221;"12.5";"13.6")))))))))

Вот второй пример:
Коэффициент: IIf([Реестр]![Протяженность, м (по каналу)]<250;1;0,75)

В первом случае результат оказывается строковой величиной, во втором числовой. Как сделать в первом выражении результат числовым уже 2-й день голову ломаю.
...
Рейтинг: 0 / 0
Формат аргументов функции IIf
    #39167393
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лишние кавычки поубирай. Ты САМ указываешь, что это СТРОКА.
...
Рейтинг: 0 / 0
Формат аргументов функции IIf
    #39167400
Energetik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я их не ставлю. Они появляются сами после выполнения запроса.
...
Рейтинг: 0 / 0
Формат аргументов функции IIf
    #39167412
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Два вопроса просто из любопытства:
1. Почему
IIf([Реестр]![Диаметр трубопроводов]="";"";
а не
IIf([Реестр]![Диаметр трубопроводов] Is Null;Null;
2. Почему восклицательные знаки, а не точки?
...
Рейтинг: 0 / 0
Формат аргументов функции IIf
    #39167419
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поставить запятую вместо точки в числах, убрав кавычки? Если конструктор сам ставит кавычки, значит он не распознает данные как число
...
Рейтинг: 0 / 0
Формат аргументов функции IIf
    #39167445
Energetik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. Потому что константа пустой ячейки это "", а Null это значение. Хотя эта проверка корректно не работает честно говоря.
2. Потому что [Реестр] является семейством для объекта полей.

Нашёл причину, все банально))
Разделитель дробной части у меня должен быть ",", а не ".".
...
Рейтинг: 0 / 0
Формат аргументов функции IIf
    #39167448
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Energetik... константа пустой ячейки это "", а Null это значение. ...
Тянет на перл месяца.
:)
...
Рейтинг: 0 / 0
Формат аргументов функции IIf
    #39167459
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Energetik1. Потому что константа пустой ячейки это "", а Null это значение. Хотя эта проверка корректно не работает честно говоря.Ячейки? Гм...
Как раз таки "" ( строка нулевой длины) - это значение.
А Null - это отсутствие значения.
Energetik2. Потому что [Реестр] является семейством для объекта полей.Проще говоря - таблица?
Понять, что такое "является семейством для объекта полей" никак не могу...
Кто чье семейство? Кто чей объект?
...
Рейтинг: 0 / 0
Формат аргументов функции IIf
    #39167478
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надежнее всего на пустоту в текстовых полях проверять как
Код: vbnet
1.
Nz([field],"")="" 


Так и Null и "" будет отловлен.
...
Рейтинг: 0 / 0
Формат аргументов функции IIf
    #39167492
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrShinНадежнее всего на пустоту в текстовых полях проверять как
Код: vbnet
1.
Nz([field],"")="" 


Так и Null и "" будет отловлен.Если можно обойтись без вызова функции VBA из SQL, то лучше обойтись.
Вот это работает заметно быстрее:
Код: sql
1.
FF Is Null OR FF = ""
...
Рейтинг: 0 / 0
Формат аргументов функции IIf
    #39167495
EnergetikНашёл причину, все банально))
Разделитель дробной части у меня должен быть ",", а не ".". В запросе разделитель всегда точка. Поэтому - странно!
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Формат аргументов функции IIf
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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