【问题标题】:Issue with Specific Nested If Statement in MS AccessMS Access 中特定嵌套 If 语句的问题
【发布时间】:2014-05-29 17:37:00
【问题描述】:

我在 2010 Access 中创建了一个嵌套 iif 语句,并且大部分情况下它都有效。但是有一次无法正确填充:

SELECT
    IIf([qryMARate]![Commissionable],
      IIf([qryMARate]![Year]="2013",
         IIf([Forms]![frmMARate]![chkTrueUp],
            [qryMARate]![AGENTInitial],
            [qryMARate]![AGENTRenewal]),
         IIf([Forms]![frmMARate]![chkTrueUp],
            IIf([qryMARate]![ProRated],
               [qryMARate]![AGENTInitial]*([Forms]![frmMARate]![cboMonth]/12),
               [qryMARate]![AGENTInitial]), <--- This line will not populate
            [qryMARate]![AGENTRenewal]*([Forms]![frmMARate]![cboMonth]/12))),
      Null)
AS AGENTRate FROM qryMARate;

此语句的目标是确定是否应该有佣金金额,然后正常显示佣金或根据赚取佣金的月份按比例分配佣金。
声明中的其他所有内容都按预期执行,但只有一行。放在该行中的内容并不重要,它不会填充。

有史以来最简单的答案,IIf 语句未将 Y 和 N 识别为可能的 T/F 响应,将按比例分配的 IIF 语句更新为:

IIf([qryMARate]![ProRated] = "Yes",

【问题讨论】:

  • 您的意思是无论数据是什么,它总是执行 [qryMARate]![AGENTInitial]*([Forms]![frmMARate]![cboMonth]/12) 行而不是 [qryMARate]! [代理人首字母]? [qryMARate]![ProRated] 字段的数据类型是什么?
  • @Swagata [qryMARate]![ProRated] 是一个带有 Y 或 N 的文本字段。是的,如果语句进入 ProRated 检查它只输出 [qryMARate]![AGENTInitial]* ([Forms]![frmMARate]![cboMonth]/12) 而不是 [qryMARate]![AGENTInitial]。
  • 这就是问题所在。你知道 Y 是yes 而 N 是 No 但对于系统来说它只是一个值 Y/N 的文本字段。要使其正常工作,您需要将 [qryMARate]![ProRated] 的数据类型更改为 Yes/No 字段或使用检查 =“Y”。请参阅下面的更新查询。
  • 啊...刚刚注意到您已经弄清楚并更新了您的问题:)

标签: ms-access-2010 iif


【解决方案1】:

见上面的评论

SELECT
IIf([qryMARate]![Commissionable],
  IIf([qryMARate]![Year]="2013",
     IIf([Forms]![frmMARate]![chkTrueUp],
        [qryMARate]![AGENTInitial],
        [qryMARate]![AGENTRenewal]),
     IIf([Forms]![frmMARate]![chkTrueUp],
        IIf([qryMARate]![ProRated] = "Y",
           [qryMARate]![AGENTInitial]*([Forms]![frmMARate]![cboMonth]/12),
           [qryMARate]![AGENTInitial]), <--- This line will not populate
        [qryMARate]![AGENTRenewal]*([Forms]![frmMARate]![cboMonth]/12))),
  Null)
AS AGENTRate FROM qryMARate;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-03
    • 1970-01-01
    • 2013-08-15
    • 1970-01-01
    • 1970-01-01
    • 2017-01-03
    • 2012-06-01
    相关资源
    最近更新 更多