Доступ к базе данных - вложенные операторы If

В настоящее время я пытаюсь создать nested if statement поле в access database который заполняет данные на основе критериев, которым он должен соответствовать.

Пока это то, что я имею в построителе выражений:

IIf([JDE Aging Report].[Term]="PPL" And [JDE Aging Report].[OpenAmount]>0,"PPL Sale", 
IIf([JDE Aging Report].[Term]="PPL" And [JDE Aging Report].[OpenAmount]<0,"PPL Credit", 
IIf([JDE Aging Report].[Term]="AE" Or "DSC" Or "MC" Or "VSA" And [JDE Aging Report].[OpenAmount]<0,"CC Credit",
 **IIf([JDE Aging Report].[Term]="AE" Or "DSC" Or "MC" Or "VSA" And [JDE Aging Report].[OpenAmount]>1,"CC Sale"))))**

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

Может кто-нибудь сказать мне, что я делаю не так? Есть ли ограничение, когда дело доходит до строительства nested if statements в access database?

Большое спасибо!

1 ответ

Последний Iif должен быть

IIf(([JDE Aging Report].[Term]="AE" Or 
[JDE Aging Report].[Term]="DSC" Or 
[JDE Aging Report].[Term]="MC" Or 
[JDE Aging Report].[Term]="VSA") And 
[JDE Aging Report].[OpenAmount]>1,"CC Sale")

или же

IIf([JDE Aging Report].[Term] In ("AE", "DSC", "MC", "VSA") And 
[JDE Aging Report].[OpenAmount]>1,"CC Sale")

Аналогичное изменение должно быть сделано для предыдущего Iif.

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

Другие вопросы по тегам