簡體   English   中英

MS Access中IIf語句的替代方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM