Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите разобраться с IIf / 19 сообщений из 19, страница 1 из 1
15.03.2004, 14:51
    #32441978
Mila
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с IIf
Здравствуйте всем!
Подскажите плиз!
Создала запрос на выборку, на одном из полей стоит условие
IIf([Forms]![frmReports]![sfrmRepLim]![Sel1]=Истина;1;2 )
Sel1 - это флажок, так все работает, но необходимо чтобы при [Sel1]=Ложь, из поля отбирались значения два и три, а не просто два, как это правильно записать и можно ли в IIf вообще такое сотворить?
Заранее спасибо)
...
Рейтинг: 0 / 0
15.03.2004, 14:57
    #32441987
SergeySV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с IIf
Чтож ты тогда нам один IIF подсовываешь, IIF может вернуть либо одно значение либо второе, все, дело не в нем, а в том как составить условие отбора в запросе, .....давай, показывай
...
Рейтинг: 0 / 0
15.03.2004, 15:24
    #32442052
Mila
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с IIf
Дело в том, что в таблице номера билетов и вся инфа по ним (маршруты, тапифы), каждый бланк билета может быть Россия (1), СНГ(2) или международный (3), раньше было все равно какой он, а теперь нуно
формировать выборку отдельно по ВВЛ (1) и МВЛ (2 и 3)
я в построителе запросов добавила поле Area в котором хранится (Россия, СНГ, МВЛ) и через IIF анализ состояния флажка и в итоге отбор либо 1 либо 2, а надо 2 и 3... вот и все...чего показывать?
Вообще я в одном запросе создала поле Area1 на основе Area (в условии поставила IIf если Area = 1, то 1, иначе 2)
теперь у меня все России 1, а СНГ и Международные - 2
Во втором запросе я подставила IIF и все стало хорошо, но...
структера такова, что появление нового поля нежелательно, да и запрос на запросе за.. надоели вобщем..
Пажалуйста объясните как сделать рациональнее, очень прошу)
...
Рейтинг: 0 / 0
15.03.2004, 15:41
    #32442097
sposad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с IIf
напиши функцию

public function Func (strArea as string) as integer

select case strArea
case "россия"
Func =1
case "СНГ"
Func =2
case "международные
Func =3
case else
end select

end function

и вставь её в запрос
...
Рейтинг: 0 / 0
15.03.2004, 15:49
    #32442118
Mila
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с IIf
А флажок?
У меня в таблице есть поле Area
В нем значения 1,2,3
Если флажок на форма труе, то надо отобрать все билеты со значением 1, а если ложь, то отобрать все билеты со значениями 2 и 3
...
Рейтинг: 0 / 0
15.03.2004, 16:12
    #32442167
Finans
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с IIf
Mila, ты запрос делаешь в конструкторе?
В строке Условие отбора: у тебя, я так понимаю:
Код: plaintext
IIf([Forms]![frmReports]![sfrmRepLim]![Sel1]=Истина; 1 ; 2 ) 

тогда в строке или: напиши:
Код: plaintext
IIf([Forms]![frmReports]![sfrmRepLim]![Sel1]=Истина; 1 ; 3 ) 

надеюсь поможет.
...
Рейтинг: 0 / 0
15.03.2004, 16:44
    #32442236
Mila
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с IIf
Да, в конструкторе
После добавления этих двух строк (условие отбора и или в поле Area), результатом запроса стала выборка всех значений из таблицы((
он не воспринимает не только эти две строки, но и все остальные условия посылает по дальше(
может быть есть еще варианты? помогите плиз!
...
Рейтинг: 0 / 0
15.03.2004, 16:56
    #32442260
sv80
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с IIf
Работая в конструкторе, если есть другие условия, ты должна их паралельно продублировать на том же уровне в добавленной строчке
Код: plaintext
1.
IIf([Forms]![frmReports]![sfrmRepLim]![Sel1]=Истина; 1 ; 3 ) 
...
Рейтинг: 0 / 0
15.03.2004, 17:00
    #32442272
sv80
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с IIf
А то у тебя система воспринимает эти условия как только для строчки
Код: plaintext
1.
IIf([Forms]![frmReports]![sfrmRepLim]![Sel1]=Истина; 1 ; 2 ) 

а для строчки
Код: plaintext
1.
IIf([Forms]![frmReports]![sfrmRepLim]![Sel1]=Истина; 1 ; 3 ) 
Ни одного условия, так как на этом уровне все поля пустые, поэтому и выбирает все.
...
Рейтинг: 0 / 0
15.03.2004, 17:05
    #32442282
Темный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с IIf
Код: plaintext
IIf([Forms]![frmReports]![sfrmRepLim]![Sel1]=Истина; 1 ; 2 ) Or IIf([Forms]![frmReports]![sfrmRepLim]![Sel1]=Истина; 1 ; 3 )
...
Рейтинг: 0 / 0
15.03.2004, 17:06
    #32442285
Темный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с IIf
Почему бы так не написать? Места жалко?
...
Рейтинг: 0 / 0
15.03.2004, 17:10
    #32442298
sv80
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с IIf
2 Темный
Ностальгия за конструктором, его методами и возможностями.:):):)
...
Рейтинг: 0 / 0
15.03.2004, 17:14
    #32442306
Темный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с IIf
Нах конструктор! Смотри, что получается в этом случае, как ты предлагаешь:
Код: plaintext
1.
WHERE (((Таблица1.[ 1 ])= 1 ) AND ((Таблица1.[ 2 ])=IIf([Forms]![frmReports]![sfrmRepLim]![Sel1]=True, 1 , 2 ))) OR 
(((Таблица1.[ 1 ])= 1 ) AND ((Таблица1.[ 2 ])=IIf([Forms]![frmReports]![sfrmRepLim]![Sel1]=True, 1 , 3 )))

И что получается, если использовать нормальный метод:
Код: plaintext
1.
WHERE (((Таблица1.[ 1 ])= 1 ) AND ((Таблица1.[ 2 ])=IIf([Forms]![frmReports]![sfrmRepLim]![Sel1]=True, 1 , 2 ) Or 
(Таблица1.[ 2 ])=IIf([Forms]![frmReports]![sfrmRepLim]![Sel1]=True, 1 , 3 )))
...
Рейтинг: 0 / 0
15.03.2004, 17:15
    #32442309
Темный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с IIf
Я понимаю, что выигрыш мизерный, но если критерий - 10 поелй? Если записей - миллион. Какой смысл делать бяку?
...
Рейтинг: 0 / 0
15.03.2004, 17:33
    #32442350
sv80
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с IIf
2 Темный Согласен, насчет функциональности пошутил :):):) Если не заметил. А Насчет конструктора обьяснил именно потому, что Mila в нем работает(начинает работать), вот и себя вспомнил с теми же вопросами и глюками и без єтого классного форума и Нета вообще.:):):). И если неошибаюсь конструктор потом сам оптимизирует условие под твой вариант с использыванием or, and и т.д. Так что в конечном результате получится все равно короткий код.:):):)
...
Рейтинг: 0 / 0
15.03.2004, 18:10
    #32442437
Mila
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с IIf
Ребята, всем большое спасибо!
Темный, места не жалко, просто условие после or пыталась вставить в первый и единственный IIF
IIf([Forms]![frmReports]![sfrmRepLim]![Sel1]=Истина;1;2 or 3 )
)))
Все получилось!
...
Рейтинг: 0 / 0
15.03.2004, 18:23
    #32442463
Темный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с IIf
2 sv80: то, что я привел, был уже "оптимизированный" конструктором вариант :) Так что на него полагаться не надо
...
Рейтинг: 0 / 0
15.03.2004, 19:07
    #32442525
sv80
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с IIf
2 Темный. Надо, но ты выкидываешь сам процесс........познания(методом научного и не научного тыка(так и удовольствие было получено:)) А он на начальной стадии очень полезен.:):):)
...
Рейтинг: 0 / 0
15.03.2004, 19:09
    #32442530
Темный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с IIf
Ладно, молчу
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите разобраться с IIf / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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