Элемент управления TextBox с вложенным оператором IIF возвращает тот же столбец независимо от того, - PullRequest
0 голосов
/ 28 ноября 2018

Я не очень опытен с Access, и я не создал эту базу данных Access, поэтому, пожалуйста, потерпите меня, но я постараюсь предоставить всю необходимую информацию.

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

Короче говоря, если тип допуска - «Для случая», то значение TextBox = значение из столбца случая

Вот утверждение, которое я недавно пытался использовать в источнике управления:

=IIf([Allowance Type]="% Off Invoice",[Freight Paid % OI],IIf([Allowance Type]="Per Pound",[Freight Paid / LB],IIf([Allowance Type]="Per Case",[Freight Paid/_Case],"")))

В этом примере значение из столбца «Freight Paid / LB» возвращается каждый раз, независимо от типа пособия.

Есть идеи, что я делаю не так?

Оплаченный фрахт% OI, Оплаченный фрахт / LB, Оплаченный фрахт / _Case - это 3 используемых столбца, и используемый тип должен соответствовать типу допуска.

Ссылка для этой конкретной попытки былаот https://access -programmers.co.uk / forums / showthread.php? t = 192667

1 Ответ

0 голосов
/ 30 ноября 2018

Как обсуждалось в комментариях, предполагая, что все упомянутые имена полей являются правильными, я не вижу синтаксических ошибок в коде для вашего оператора IIf, и затем мы также убедились, что тестовые выражения проверяются, как и ожидалось.

=IIf
(
    [Allowance Type]="% Off Invoice",
    [Freight Paid % OI],
    IIf
    (
        [Allowance Type]="Per Pound",
        [Freight Paid / LB],
        IIf
        (
            [Allowance Type]="Per Case",
            [Freight Paid/_Case],
            ""
        )
    )
)

В качестве альтернативы вы можете попробовать использовать более простое выражение switch, которое устраняет необходимость использования вложенных выражений:

=Switch([Allowance Type] = "% Off Invoice", [Freight Paid % OI], [Allowance Type] = "Per Pound", [Freight Paid / LB], [Allowance Type] = "Per Case", [Freight Paid/_Case], True, "")

Это структурировано следующим образом:

=Switch
(
    [Allowance Type] = "% Off Invoice", [Freight Paid % OI], 
    [Allowance Type] = "Per Pound",     [Freight Paid / LB], 
    [Allowance Type] = "Per Case",      [Freight Paid/_Case],
    True, ""
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...