Доступ к базе данных - вложенные операторы 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, иначе результаты могут быть неверными.