Вы, вероятно, получаете сообщения об ошибках из-за двух проблем с вашим кодом:
A BETWEEN
оператор имеет синтаксис:
expr [Not] Between value1 And value2
Вы должны не включать в себя слово is :
IIf([YearsInService] is between 5 and 14,
^-------------------- this shouldn't be here
Ваш последний else аргумент заключает в себестрока в «умных кавычках» или символе Unicode 0x201C :
IIf
(
[YearsInService] >= 25,
"5",
”0” <--- here
)
В отличие от стандартной двойной кавычки, которая является символом Unicode / ASCII 0x0022 :
IIf
(
[YearsInService]>=25,
"5",
"0"
)
Исправление этих двух проблем приведет к выражению IIF
, например:
IIf
(
[YearsInService] <= 4,
"2",
IIf
(
[YearsInService] between 5 and 14,
"3",
IIf
(
[YearsInService] between 15 and 24,
"4",
IIf
(
[YearsInService] >= 25,
"5",
"0"
)
)
)
)
Однако вы можете найти применениеоператора SWITCH
более читабельного:
Switch
(
[YearsInService] <= 4, "2",
[YearsInService] <= 14, "3",
[YearsInService] <= 24, "4",
[YearsInService] > 24, "5",
True, "0"
)
Последнее тестовое выражение обеспечивает универсальное значение по умолчанию для учета нулей и по-прежнему возвращает строковое значение - я позволю вамрешить, хотите ли вы включить или не включать это, в зависимости от требований вашего приложения.