В условиях запроса ссылка на поле формы

kwadrad
Дата: 19.12.2011 19:59:26
Прошу помощи.

В условии запроса ссылка на поле формы. Если выбрать определенное значение поля, то запрос работает нормально.

Проблема заключается в том, что мне необходимо иногда получить результат общий (в моем случае это отделы предприятия, задаешь конкретный отдел, запрос работает,
не работает, когда я пытаюсь получить общий результат по предприятию).
Попытка сформулировать условие в виде

IIf([Forms]![Период отчета для отдела]![НаименованиеОтдела]='Все';'Like "*"';[Forms]![Период отчета для отдела]![НаименованиеОтдела])

не дает никаких результатов.

Подскажите, что делать?

Заранее спасибо за помощь.
Владимир Саныч
Дата: 19.12.2011 20:04:58
kwadrad
'Like "*"'

Это просто стринг, а не условие на поле. Параметрами IIF должны быть выражения. Например:

IIF(A=B,C like "*",C=D)
kwadrad
Дата: 19.12.2011 20:25:29
Владимир Саныч,

ну да стринг, почему нет?

как прописать чтоб работало?
mds_world
Дата: 19.12.2011 22:31:28
kwadrad
Владимир Саныч,

ну да стринг, почему нет?

Потому что этот стринг никак не связан с выборкой отделов. Просто никак и все.

kwadrad
как прописать чтоб работало?

Написать выполняемое действие. Например (чисто, наобум. Для случая если IIF во Where)
IIf([Forms]![Период отчета для отдела]![НаименованиеОтдела]='Все';True;
[НаименованиеОтдела] Like "*" & [Forms]![Период отчета для отдела]![НаименованиеОтдела] & "*")

А еще лучше так (вообще без иифов и тоже для условий отбора во Where)
Where [НаименованиеОтдела] like  "*" & [Forms]![Период отчета для отдела]![НаименованиеОтдела] & "*" Or
[Forms]![Период отчета для отдела]![НаименованиеОтдела]='Все'


Если же вы применяете IIF не для отбора, а в селекте, то неясно, что вы хотите получить в результате.
kwadrad
Дата: 20.12.2011 01:56:17
IIf([Forms]![Период отчета для отдела]![НаименованиеОтдела]='Все';True;
[НаименованиеОтдела] Like "*" & [Forms]![Период отчета для отдела]![НаименованиеОтдела] & "*")

Это не работает, выдает ошибку.



Where [НаименованиеОтдела] like  "*" & [Forms]![Период отчета для отдела]![НаименованиеОтдела] & "*" Or
[Forms]![Период отчета для отдела]![НаименованиеОтдела]='Все'



А вот это работает отлично, огромное благодарю!!! Хотя логику все-таки не понял:)
Владимир Саныч
Дата: 20.12.2011 02:00:41
kwadrad
IIf([Forms]![Период отчета для отдела]![НаименованиеОтдела]='Все';True;
[НаименованиеОтдела] Like "*" & [Forms]![Период отчета для отдела]![НаименованиеОтдела] & "*")

Это не работает, выдает ошибку.

Наверно, не туда воткнули.
kwadrad
Дата: 20.12.2011 02:38:21
Владимир Саныч
kwadrad
IIf([Forms]![Период отчета для отдела]![НаименованиеОтдела]='Все';True;
[НаименованиеОтдела] Like "*" & [Forms]![Период отчета для отдела]![НаименованиеОтдела] & "*")

Это не работает, выдает ошибку.

Наверно, не туда воткнули.


Скорее всего, так и есть. Главное что результат есть: заработало по второму варианту.
Спасибо.