2017-02-09 3 views
0

меня возникли проблемы с запросом, который использует IIF заявления на ниже:Access Запрос Критерии Создание параметров запроса

Items Исключить: IIF ([Это КВС] = «Нет», [ID2], IIf (([Это FAC] = «Да») И ([ID2] = «CsaId»), «False», [ID2]))

В поле «Элементы для исключения» должно быть указано ID2, Поле FAC '(1) Нет OR (2) Yes И ID2 не является «CsaId».

Когда запрос выполняется с приведенными выше формулами, и в соответствии с нижеследующим он отлично работает, возвращая FALSE, где он должен находиться в поле «Элементы для исключения» для формулы.

enter image description here

Проблема заключается в том, если я затем ввести <> «False» в поле Criteria на ниже (как я хочу, чтобы затем отфильтровать любые исключения, то есть ложные элементы)

enter image description here

, похоже, превращает поле в запрос параметра и дает окно всплывающего окна ниже, вместо того, чтобы просто отфильтровывать инструкции FALSE.

enter image description here

Я был бы признателен за любую помощь/идеи.

Благодаря

ответ

1

К сожалению, в WHERE и GROUP BY статей вы не можете использовать псевдонимы столбцов, как вы делали. Замените все Is this FAC формулой для этой колонки. Таким образом, в вашем случае для элементов, чтобы исключить формула будет

Items to Exclude: IIf(IIf([Id1]="FAC","Yes","No")="No",[ID2], 
    IIf((IIf([Id1]="FAC","Yes","No")="Yes") And ([ID2]="CsaId"),"False",[ID2])) 

После этого условие work.You может думать об упрощении этой формулы.

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

+0

Привет, Сергей. Спасибо за ваши комментарии. Когда вы говорите «Заменить по формуле для этого столбца», вы имеете в виду ссылку на столбец каким-то другим способом, чем ссылаться на него с именем поля [Is this FAC]? – JDT

+0

Если да, то как бы вы предложили обратиться к нему, пожалуйста, в качестве примера, поскольку я не думаю, что знаю другой способ? Cheers – JDT

+0

Это работает, спасибо Сергею! – JDT