用于计算字段的嵌套IIf语句

时间:2015-12-10 16:49:52

标签: ms-access if-statement ms-access-2010

我在Access表中有这个公式

iif([selling_unit_height]>[selling_unit_length],[selling_unit_height],[selling_unit_length],
iif([selling_unit_height]>[selling_unit_width],[selling_unit_height],[selling_unit_width],
iif([selling_unit_length]>[selling_unit_width],[selling_unit_length],[selling_unit_width])))

你能不能在Access中做这样的事情?我有三个数字,我想得到这三个数字中最大的一个。它说错误的参数数量。如果我不能这样做,那么我需要另一种方法帮助。

2 个答案:

答案 0 :(得分:1)

结帐此资源https://support.office.com/en-us/article/IIf-Function-32436ecf-c629-48a3-9900-647539c764e3,或尝试搜索“ms access iif”

您可以嵌套“Iif”,但语法错误。

iif(
 [selling_unit_height]>[selling_unit_length], # Condition
 [selling_unit_height],                       # true response
 iif(                                         # false response, a new iif
  [selling_unit_height]>[selling_unit_width], # condition
  [selling_unit_height],                      # true response
  iif(                                        # false response, a new iff
   [selling_unit_length]>[selling_unit_width],# condition
   [selling_unit_length],                     # true response
   [selling_unit_width]                       # final false response
  )
 )
)

我并没有真正考虑过你所追求的逻辑,只是强调了语法错误。

答案 1 :(得分:1)

我认为您需要一个公式,您可以将其用作数据类型为计算的字段的 Expression 属性。 (这意味着您的数据库是ACCDB类型,您的Access版本是> = 2010。)

我将此作为 Expression 用于名为 maximum 的字段...

code_change/4

它从这3个字段(IIf([h]>=[l] And [h]>=[w],[h],IIf([l]>=[h] And [l]>=[w],[l],IIf([w]>=[h] And [w]>=[l],[w],Null))) hl)中检索最大值,如果其中任何一个包含Null则返回Null。

以下是包含示例数据的表格的屏幕截图...

datasheet view of table with calculated field