Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Не удается составить правильную конструкцию iif(isnull( / 7 сообщений из 7, страница 1 из 1
18.09.2016, 15:57
    #39311007
Romanoid
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удается составить правильную конструкцию iif(isnull(
При пустом фильтре на форме в 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
18.09.2016, 16:29
    #39311014
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удается составить правильную конструкцию iif(isnull(
Нет, дело не в IIf. Дело в том, что в VB вне зависимости от результата выражения перед OR, выражение после OR также будет вычисляться. Когда значение поля у вас будет равно NULL и вы попытаетесь применить к нему оператор сравнения, то этот момент приведет к тому, что все логическое выражение будет недействительным и Iif выдаст значение для False.
...
Рейтинг: 0 / 0
18.09.2016, 16:31
    #39311015
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удается составить правильную конструкцию iif(isnull(
Я в подобных случаях пользуюсь такой универсальной функцией
Код: 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
18.09.2016, 17:47
    #39311026
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удается составить правильную конструкцию iif(isnull(
Romanoid,

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


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


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