我一直试图解决这个计算字段问题大约30分钟,看起来我在表达式中有单个字段条件正确,如[points]和[contrib]但是组合([points] + [contrib] ])字段不满足将字段设置为正确的成员类型的要求,因此当添加这些字段时,它将返回一些其他成员类型作为基本类型。我可以使用between运算符和添加的字段......?我尝试过,但有一些成分错误。所以换句话说,如果你得到45分,它会将你设置为只在点数字段中命名的基础,如果你有45的贡献你在calc字段按预期设置为基本,但是如果它是50 + 50,而是它当它应该是“更好”的成员标签时设置为基本。否则这个简单的陈述应该是正确的,但计算机在添加时不会读取它。由于某种原因,它不能识别组合值,并且calc字段没有sum()函数。 关注点:(([点] + [贡献])> = 45和([点] + [贡献])< 100),“基本”,
IIf(([points] >=45 And [points]<100) Or ([Contrib] >=45 And [Contrib] <100) Or (([points]+[Contrib]) > = 45 And ([points]+[contrib] < 100),"Basic",
IIf(([points] >=100 And [points] <250) Or ([Contrib] >=100 And [Contrib] <250) Or ((([points]+[Contrib]) >=100) And (([points]+[Contrib])<250)),"Better",
IIf(([points] >=250 And [points]<500) Or ([Contrib] >=250 And [Contrib] <500) Or ((([points]+[Contrib]) >=250) And (([points]+[Contrib])<500)),"Great",
IIf(([points] >=500) Or ([Contrib] >=500) Or (([points]+[Contrib]) >=500),"Best","Non-member"))))
答案 0 :(得分:2)
以下是Access 2010表中的数据示例,其中包含名为 member_type 的计算字段:
id points Contrib member_type
-- ------ ------- ----------
1 1 1 Non-member
2 50 1 Basic
3 200 1 Better
4 300 1 Great
5 600 1 Best
如果这是你想要的计算字段,那么这是我用于 member_type 的表达式:
IIf([points]+[Contrib]>=45 And [points]+[Contrib]<100,'Basic',IIf([points]+[Contrib]>=100 And [points]+[Contrib]<250,'Better',IIf([points]+[Contrib]>=250 And [points]+[Contrib]<500,'Great',IIf([points]+[Contrib]>=500,'Best','Non-member'))))
如果我没有完全正确,那么格式化相同的表达式,以便您可以更好地了解需要更改的位置:
IIf([points]+[Contrib]>=45 And [points]+[Contrib]<100,'Basic',
IIf([points]+[Contrib]>=100 And [points]+[Contrib]<250,'Better',
IIf([points]+[Contrib]>=250 And [points]+[Contrib]<500,'Great',
IIf([points]+[Contrib]>=500,'Best','Non-member'
))))
请注意,如果 points 或 Contrib 为空, member_type 将显示&#34;非会员&#34; < / em>的。如果这不是您想要的行为,则需要更复杂的表达式。由于计算的字段表达式无法使用 禁止Null用于这些字段(将必需属性设置为是)并将默认值设置为零会更简单。< / p>
Nz()
,因此IIf([points] Is Null,0,[points])
和/ [points]
的{{1}}和IIf([Contrib] Is Null,0,[Contrib])
的每次出现都必须替换[Contrib]
之类的内容>
答案 1 :(得分:0)
如果您测试的值是&gt; =或&lt; =您对BETWEEN的限制,则BETWEEN运算符返回TRUE。
如果您正在查看50 + 50,那么该总数= 100且您在44到100之间。这将导致“基本”的答案。将([点数] + [贡献])的范围更改为([点] + [贡献])介于44和99之间