我创建了一个MS Access数据库,用于跟踪工作中的一些项目。用户输入数据,然后在查询中汇总(使用计数或总和)来计算每个区域的实际值,使用UNION加入,然后与该区域的目标进行比较。我尝试输入一个IIF声明来有条件地计算[Act]/[Goal]的百分比,如果[Act]为空,则该值为零,如果[Act]大于[Goal],则该值为1,因此没有超过100%的值。问题在于它大部分时间都在工作,但是其他时间会失败,并且没有明显的逻辑错误或原因,我可以弄清楚。访问计算不一致或正确计算:“大于”在IIF声明
有时,即使看着它,也不能说[法]> [目标],这很明显。数字都是整数,没有什么疯狂的或格式化的差异。 [Met]中的公式就是我希望达到的。我添加了[TEST]字段来追溯它可能不工作的地方,这表明Access并不总是返回[Act]> [Goal]的正确答案。
我的查询:
出来的东西(只折断):
正如你所看到的,它可以正确处理最行,但后来认为149是少比52小,128小于3.因此,它产生[Met]值超过100%。
有没有人有过这种情况发生之前或有任何建议?我已经尝试使用刷新,点击单元格来打入输入,我能想到的所有东西。
它不会让我编辑(不够分,其中包含的照片? ) [Met]的完整公式是: Met:IIf(IsNull([Act]),0,IIf([Act]> [Goal],1,Round([Act]/[Goal],2)) ) [TEST]的完整公式为: TEST:IIf([Act]> [Goal],“greater”,“less than”) –
查询结果窗口中有一个很好的线索:文本值左对齐而数字值是右对齐的。 – Minty