[英]Alternative to IIf statement in MS Access
我有一个IIF语句应该做我想做的,但它太复杂了,所以我需要编写这些代码的另一种方式。 我已经尝试过switch语句,但是有相同的问题。 代码的目的很难解释,但我会尝试使其简单,因为我发现在寻找解决方案时上下文很重要。
基本上,我使用查询来输出可以用作模拟矩阵的数据表。 它需要能够进行自定义,即5x5、7x7、10x10等,并且显示的值需要更改以反映尺寸。 查询从中提取的表之一只是数值,我使用这些数值的总和来确定该字段的输出。 还有一个标记为“ [Matrix Size]”的字段,用于确定尺寸。 最终,这还将决定根据这些维度显示哪些信息,但是我还没有得到那么多。 过于复杂的IIf语句如下。
IIf([Matrix Size]<=0," ",
IIf([Impact]=0,"1",
IIf([Impact]+[Likelihood]=2,"Low",
IIf([Matrix Size]<2," ",
IIf([Impact]+[Likelihood]=3,"Low",
IIf([Matrix Size]<3," ",
IIf([Impact]+[Likelihood]=4,"Low",
IIf([Matrix Size]<4," ",
IIf([Impact]+[Likelihood]=5,"Low",
IIf([Matrix Size]<5," ",
IIf([Impact]+[Likelihood]=6,"Low",
IIf([Matrix Size]<6," ",
IIf([Impact]+[Likelihood]=7,"Low",
IIf([Matriz Size]<7," ",
IIf([Impact]+[Likelihood]=8,"Low","Error")))))))))))))))
如果有人知道简化此方法的另一种方式,并且访问不会太复杂,请告诉我。 任何帮助表示赞赏。
为了清晰起见,如果需要:
第二个IIf用于将第一行设置为“ 1”,以用作沿水平行的数值之一。 Impact + likelihood语句确定该字段应显示的值是“ Low”,“ Medium”还是“ High”,但目前“ Low”只是一个占位符,矩阵大小语句确定该字段应为空白还是空白并非基于所需的尺寸。
您正在寻找的替代方法是switch()
:
switch([Matrix Size] <= 0, " ",
[Impact] = 0, "1",
[Impact] + [Likelihood] = 2, "Low",
. . .
"Error"
) -- only one paren needed!
不幸的是,您的情况是基于三列的混合情况,因此查找表会有些麻烦。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.