Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
0 / 0 / 0
Регистрация: 06.09.2013
Сообщений: 8
1

Как задать условие IIF, чтобы в одном из вариантов он выдавал null?

07.09.2013, 00:50. Показов 4774. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
Не могу задать условие в запросе.
Имею:
1 таблица - сотрудники
2 таблица - должности
3 таблица - [СпрОрг] организации (в ней есть поле [СООтобрВСп])

на форме добавил птичку [Пусто] при нажатии (истина) которой должны отобразиться в списке сотрудники, которые не имею ни одной записи в таблице должность, а при значении (ложь) должны отобразится только сотрудники организации с [СООтобрВСп] = истина
Вот что пробовал указав в условии для [СООтобрВСп]:
IIf([Формы]![СотрСписок]![Пусто]=0;-1;[СпрОрг].[СООтобрВСп] Is Null)
и так:
IIf([Формы]![СотрСписок]![Пусто]=0;-1;Is Null)

но ничего не выходит. Если вместо условия просто прописать Is Null или -1, то все работает, а через оператор Iff нет (касается только отборки по значению Is Null)

Помогите, пожалуйста!
Заранее спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.09.2013, 00:50
Ответы с готовыми решениями:

Как задать условие IIF в построителе, чтобы в одном из вариантов он выдавал null
Доброго времени суток! Нужна помощь, в запросе использую iif: iif ((!!) is null; is null;...

Как задать условие так, чтобы работа процедуры была непрерывной?
Пишу программу на VB6.Это программа для расчёта коэффициентов.Изначально пользователь задаёт...

Как нужно задать условие, чтобы при последовательном рандомном выводе чисел в ряд ни одно из них не повторялос
Как нужно задать условие, чтобы при последовательном рандомном выводе чисел в ряд ни одно из них не...

Не могу сообразить как задать условие, чтобы при проверке элемента строки, менялись потом в строке все эл-ты
Что написано неверно - дураку понятно. Как сделать так, чтобы проверялось условие того, что Элемент...

10
2842 / 774 / 41
Регистрация: 20.05.2012
Сообщений: 2,055
07.09.2013, 01:39 2
IIf([Формы]![СотрСписок]![Пусто]=0;-1;Null)
?
0
0 / 0 / 0
Регистрация: 06.09.2013
Сообщений: 8
07.09.2013, 11:08  [ТС] 3
Пробовал, только запрос вообще ничего не отображает при установке птички на "Пусто"
0
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
07.09.2013, 11:30 4
Если правильно понял задачу, то требуется выдать набор данных в зависимости от поля таблицы [СООтобрВСп]. Аргументом отбора служит поле формы [Формы]![СотрСписок]![Пусто]. Причем, если [Пусто]=False, то [СООтобрВСп]=True и если [Пусто]=True, то [СООтобрВСп]=False. Т.е. другими словами [СООтобрВСп]=Not [Формы]![СотрСписок]![Пусто]. В скл-выражении условие можно отобразить так (с возможным тройным состоянием)
SQL
1
WHERE [СООтобрВСп]=NOT Nz([Формы]![СотрСписок]![Пусто],0)
0
0 / 0 / 0
Регистрация: 06.09.2013
Сообщений: 8
07.09.2013, 12:06  [ТС] 5
Спасибо! Но не получилось. Смысл в том, что для некоторых записей в таблице [Сотр] отсутствуют записи в таблице [СоотвДолжн] (соответствие должности) и смысл кнопки в форме именно вывести список тех сотрудников у которых отсутствует запись в таблице [СоотвДолжн]

Не совсем понятно наверное написал. Сейчас попробую расписать:
[Cотр] [СоотвДолжн] [СпрОрг].[СООтобрВСп]
Иванов 1 ООО "..."
Петров
Сидоров 2 ООО "..."

В данном примере видно, что Иванов имеет запись в таблице [СоотвДолжн], в свою очередь должность завязана на организации имеющей параметр [СпрОрг].[СООтобрВСп]=1, а Петров не имеет ни одной записи в таблице [СоотвДолжн].
При нажатии [Формы]![СотрСписок]![Пусто] = True должны отображаться все те сотрудники не имеющие ни одной записи в таблице [СоотвДолжн] (т.е. Петров), а при нажатии только те сотрудники, должности которых привязаны к организации имеющей параметр [СпрОрг].[СООтобрВСп]=1 (т.е. Иванов)

Надеюсь не запутал еще больше...
0
3544 / 1118 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
07.09.2013, 12:36 6
Цитата Сообщение от Envoy Посмотреть сообщение
... не получилось
Пробуйте еще так (в SQL-выражении)
SQL
1
WHERE IIf(Nz([Формы]![СотрСписок]![Пусто],0), [СООтобрВСп] IS NULL, [СООтобрВСп])
2
0 / 0 / 0
Регистрация: 06.09.2013
Сообщений: 8
07.09.2013, 13:01  [ТС] 7
Попробовал так, видимо где-то, что-то не так сделал или не так понял... Выдает ошибку на этой строке


SQL
1
WHERE IIf ( Nz ([Формы]![СотрСписок]![Пусто], 0) =0 ; [СпрОрг].[СООтобрВСп] IS NULL ;[СпрОрг].[СООтобрВСп] = 1)
0
8860 / 5908 / 585
Регистрация: 27.03.2013
Сообщений: 19,574
07.09.2013, 13:09 8
Envoy - Может уже пора больного на всеобщий консилиум врачей выложить?
А то ведь уже практически с часа ночи мучаетесь в догадках
Да и все остальные.
0
3544 / 1118 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
07.09.2013, 13:20 9
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от Envoy Посмотреть сообщение
Попробовал так, видимо где-то, что-то не так сделал
Заменили запятые, разделяющие параметры функций, на точки с запятой. Последние используются в конструкторе запросов, а в SQL режиме - запятые.
Далее, последним параметром функции IIf я записал [СпрОрг].[СООтобрВСп], чтобы не зависеть от вашего настроения, когда вы в первом сообщении пишете, что [СООтобрВСп]=Истина (-1), а затем в одном из следующих утверждаете, что [СООтобрВСп]=1.

Добавлено через 2 минуты
Цитата Сообщение от kmv-puh Посмотреть сообщение
Envoy - Может уже пора больного на всеобщий консилиум врачей выложить?
А то ведь уже практически с часа ночи мучаетесь в догадках
Да и все остальные.

Не по теме:

Не портьте кайф :)

3
8860 / 5908 / 585
Регистрация: 27.03.2013
Сообщений: 19,574
07.09.2013, 13:28 10
Цитата Сообщение от minob Посмотреть сообщение

Не по теме:

Не портьте кайф

Кликните здесь для просмотра всего текста

Не по теме:

Всё молчу, хотя сам часто бываю такой :)

0
0 / 0 / 0
Регистрация: 06.09.2013
Сообщений: 8
07.09.2013, 13:53  [ТС] 11
СПАСИБО БОЛЬШОЕ!!!
Все получилось код действительно как Вы написали заработал:
SQL
1
WHERE IIf(Nz([Формы]![СотрСписок]![Пусто],0), [СпрОрг].[СООтобрВСп] IS NULL, [СпрОрг].[СООтобрВСп]=-1)
Еще раз спасибо большое!!!
0
07.09.2013, 13:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.09.2013, 13:53
Помогаю со студенческими работами здесь

Как задать условие, определяющее выбранную опцию списка,и чтобы каждая опция (выделенная ) заносилась в отдельную ячейку рабочего листа?
Есть список: With LBox1 .ListStyle = fmListStyleOption ...

Как сделать чтобы rand() выдавал в массив неповторяющиеся числа?
Короче смысл такой. Программка почти дописана, задача стояла такая: Написать метод /функцию,...

Как сделать так, чтобы код не IP выдавал, а имя компьютера
Вот смотрите... <%=Request.ServerVariables('HTTP_USER_AGENT')%> выдает имя клиентской программы...

Как написать двухмерный массив чтобы заместо букв выдавал символы
Я не знаю как вывести на экран символы подскажите срочно ! program massiv10; uses crt; const...

Задать условие, чтобы картинки в PictureBox не повторялись
Ребят нужна помощь,есть массив картинок, мне нужно задать условие, чтобы картинки в pictureBox не...

Какое условие задать, чтобы выйти из цикла
y,x,z:real; begin y:=5;x:=y/2; while ??? do begin x:=(y/x+x)/2; end; какое нужно условие...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru