powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Не удается составить правильную конструкцию iif(isnull(
7 сообщений из 7, страница 1 из 1
Не удается составить правильную конструкцию iif(isnull(
    #39311007
Romanoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При пустом фильтре на форме в access открывается exel таблица с пустым значением в строке , а при выборе какого нибуть фильтра открываются все записи с выбранном фильтром и название этого фильтра записывается в Exel строке А .
Работает не правильно, записи сортирует правильно , а при пустом фильтре записывает в строку А значения первого фильтра( Должна быть пустая строка)
Сам , я новечек , прошу подсказать , Знаю что что-то не верно в конструкции iif

Код: vbnet
1.
2.
Сt=2
Osheet.Range("A" & ct) = iif(Isnull(rs.Fields("ИмяЛПУ").Value) Or rs.Fields("ИмяЛПУ").Value= "","", rs.Fields("ИмяЛПУ").Value)


Модератор: Учимся использовать тэги оформления кода - FAQ
...
Рейтинг: 0 / 0
Не удается составить правильную конструкцию iif(isnull(
    #39311014
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, дело не в IIf. Дело в том, что в VB вне зависимости от результата выражения перед OR, выражение после OR также будет вычисляться. Когда значение поля у вас будет равно NULL и вы попытаетесь применить к нему оператор сравнения, то этот момент приведет к тому, что все логическое выражение будет недействительным и Iif выдаст значение для False.
...
Рейтинг: 0 / 0
Не удается составить правильную конструкцию iif(isnull(
    #39311015
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я в подобных случаях пользуюсь такой универсальной функцией
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Function IsNone(Val As Variant) As Boolean

IsNone = True
If IsNull(Val) Then Exit Function
If IsMissing(Val) Then Exit Function
If Val <> "" Then IsNone = False

End Function
...
Рейтинг: 0 / 0
Не удается составить правильную конструкцию iif(isnull(
    #39311026
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Romanoid,

или так попробовать:
Код: vbnet
1.
Osheet.Range("A" & ct) = iif(rs.Fields("ИмяЛПУ").Value & "" = "","", rs.Fields("ИмяЛПУ").Value)


Хотя не очень понятно зачем в ячейку запихивать пустую строку, если запись пустая? Почему не использовать нормальную проверку и заносить в ячейки только не пустые данные?
...
Рейтинг: 0 / 0
Не удается составить правильную конструкцию iif(isnull(
    #39311029
Romanoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А с iif как сделать верно???
...
Рейтинг: 0 / 0
Не удается составить правильную конструкцию iif(isnull(
    #39311031
Romanoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Prist,
Это нужно для статистики на работе. Если пустая строчка, значит использовались все лечебные учреждения)
Спасибо за версию , завтра на работе попробую
...
Рейтинг: 0 / 0
Не удается составить правильную конструкцию iif(isnull(
    #39311037
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RomanoidЕсли пустая строчка, значит использовались все лечебные учреждения)Я не про это. Зачем обязательно делать запись в ячейке? Ведь ячейка по умолчанию и так пустая, верно? Зачем записывать туда пустое значение? Такой вариант был бы быстрее в любом случае:
Код: vbnet
1.
if rs.Fields("ИмяЛПУ").Value & "" <> "" then Osheet.Range("A" & ct).Value = rs.Fields("ИмяЛПУ").Value
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Не удается составить правильную конструкцию iif(isnull(
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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