【发布时间】:2015-07-26 21:58:15
【问题描述】:
我一直在尝试解决这个 calc 字段问题大约 30 分钟,看起来我的表达式中的单个字段条件是正确的,例如 [points] 和 [contrib] 但组合的 ([points]+[contrib ]) 字段不满足将字段设置为正确成员类型的要求,因此当添加这些成员时,它会返回一些其他成员类型作为基本类型。我可以在添加字段的情况下使用 between 运算符吗...?我试过了,但有一些构图错误。所以换句话说,如果你得到 45 分,它会将你设置为 basic,只在 points 字段中命名,如果你的 contrib 为 45,你将在 calc 字段中设置为 basic,但如果它是 50 + 50,那么它是当它应该是“更好”的成员标签时设置为基本。否则,这个简单的陈述应该看起来是正确的,但是添加时计算机没有读取它。由于某种原因,它一定不能识别组合值,并且 calc 字段没有 sum() 函数。 重点在这里:(([points]+[Contrib]) >= 45 And ([points]+[Contrib])
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"))))
【问题讨论】:
-
这很难理解,但有具体的错误信息吗?请注意,最后一个表达式(在“Focus here:”之后)是不等价的。之间包括在内,因此包括 44 和 100 (50+50)。
-
虽然不是这个复杂的表达式,我会建立一个小表并查找成员状态。这应该是可能的,匹配点和 Contrib 位于特定边界之间的位置。
-
请忽略使用中间的第一部分,那是一个实验。范围应该是 >= 45 到
-
在最上面一行,
([points]+[Contrib])多了一个括号。 -
它属于表格,随着点数的输入而更新。过去的点和贡献没有按照给定点和贡献的总和更新到正确的标签级别。
标签: ms-access field ms-access-2013