Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Непонятки с выражением IIF в групповом запросе (Access 2003)
 
 автор: Shved   (05.05.2010 в 08:19)   личное сообщение
 
 

Люди добрые, подскажите, пожалуйста, в чём может быть проблема.

В нехитром групповом запросе на выборку где участвует две таблицы. На основе (условие) данных в [Таблица2]![Поле1] выбираются данные из [Таблица1]![Поле1] с помощью следующего выражения:
IIf([Таблица2]![Поле1]=0;([Таблица1]![Поле1] Is Null And <>0);[Таблица2]![Поле1])

Т.е. если в [Таблица2]![Поле1]=0, то нужно выводить ВСЕ записи [Таблица1]![Поле1], а если [Таблица2]![Поле1]<>0 (отлично от 0), то выводить записи ([Таблица1]![Поле1]) с условием [Таблица1]![Поле1]=[Таблица2]![Поле1].

Пробовал по разному составить IIf , но всё равно при выполнении запроса выводит выводит ноль записей.

  Ответить  
 
 автор: osmor   (05.05.2010 в 10:39)   личное сообщение
 
 

странно что вообще скушал такой запрос
[Таблица1]![Поле1] Is Null And <>0
"and <> 0" - это что?
вообще логика не прозрачна
что значит
"если в [Таблица2]![Поле1]=0, то нужно выводить ВСЕ записи"
?
т.е. если в первой записи таблицы2 поле1 равно 0, то нужно вывести все записи из таблицы 1
а если во второй записи таблицы2 поле1 опять равно 0, то нужно опять вывести все записи из таблицы1

?????

  Ответить  
 
 автор: Shved   (06.05.2010 в 04:44)   личное сообщение
 
 


т.е. если в первой записи таблицы2 поле1 равно 0, то нужно вывести все записи из таблицы 1
а если во второй записи таблицы2 поле1 опять равно 0, то нужно опять вывести все записи из таблицы1



Спасибо за внимание к моей проблеме.


Вообще то да, только этот запрос выполняется на выбранной записи в Таблице2 на выборку в Таблице1 (выводятся записи по этим критериям из таблицы1).
Т.е. если в некой записи в Таблице2 выполняется условие Поле1=0, то нужно выбрать абсолютно любые (все) записи Поля1 в Таблице1.
А если в некой записи Таблицы2 в Поле1 будет стоять что-то отличное от 0, то из Таблицы1 нужно выводить только те Поля1 в которых выполняется условие равенства [Таблица1]![Поле1]=[Таблица2]![Поле1] (к примеру, [Таблица2]![Поле1]=3, значит выводить все записи из Таблица1 у которых [Таблица1]![Поле1]=3).
Ну вот так.. надеюсь теперь доходчиво объяснил...

  Ответить  
 
 автор: Анатолий (Киев)   (05.05.2010 в 10:55)   личное сообщение
 
 

...WHERE ([Таблица2]![Поле1]=0) OR ([Таблица1]![Поле1]=[Таблица2]![Поле1])

  Ответить  
 
 автор: Shved   (06.05.2010 в 04:44)   личное сообщение
 
 

Спасибо за ответ!

Ну это вроде как не совсем то что нужно...

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList