Оператор Iff в отчете Access с возможным более чем 1 истинным условием

Я хочу сделать отчет, который мог бы вернуть несколько условий. Отрицательный, Положительный, Отмененный, Отрицательный/Разбавленный или Положительный/Разбавленный. Я написал заявление IIF с несколькими условиями.

=IIf([Negative]="1","NEGATIVE RESULT",
    IIf([Positive]="1","POSITIVE RESULT",
       IIf([Cancelled]="1","CANCELLED TEST",
          IIf([Negative]="1" And [Dilute]="1","NEGATIVE/DILUTE RESULT",
              IIf([Positive]=”1” And [Dilute]=”1”, POSITIVE/DILUTE
              )
          )
       )
    )
)

Первая часть, середина и конец будут работать по отдельности как отдельные операторы, но не будут работать вместе.

Что я делаю не так? Какие-либо предложения?


person Tazit    schedule 14.10.2018    source источник
comment
последний оператор пропускает условие else, разделители строк также выглядят странно, и вокруг Positive/Dilute нет разделителей строк. это могут быть причины   -  person Jan    schedule 14.10.2018
comment
Используйте функцию переключения. Пример можно найти здесь: (stackoverflow.com/questions/ 51846034/)   -  person Rene    schedule 14.10.2018
comment
Если Negative = 1 или Positive = 1, код никогда не дойдет до двух последних условий. Поместите эти условия на первое место. И используйте функцию переключения. Используйте кавычки вокруг POSITIVE/DILUTE. Как «умные кавычки» были вставлены в ваш код в последнем условии? Access их не любит.   -  person June7    schedule 15.10.2018


Ответы (1)


Вы можете использовать комбинацию функций Switch и IIf:

=Switch(
  [Negative]="1", "NEGATIVE" & IIf([Dilute]="1", "/DILUTE", "") & " RESULT",
  [Positive]="1", "POSITIVE" & IIf([Dilute]="1", "/DILUTE", "") & " RESULT",
  [Cancelled]="1", "CANCELLED TEST"
)
person Wolfgang Kais    schedule 14.10.2018