Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 访问计算不一致或计算不正确:“;大于;在IIF声明中_Ms Access_Ms Access 2013_Calculated Field - Fatal编程技术网

Ms access 访问计算不一致或计算不正确:“;大于;在IIF声明中

Ms access 访问计算不一致或计算不正确:“;大于;在IIF声明中,ms-access,ms-access-2013,calculated-field,Ms Access,Ms Access 2013,Calculated Field,我创建了一个MS Access数据库,用于跟踪工作中的一些项目。用户输入数据,然后在查询中聚合(使用count或sum)以计算每个区域的实际值,使用UNION连接,然后与该区域的目标进行比较。我试图输入一个IIF语句来有条件地计算[Act]/[Goal]的百分比,如果[Act]为空,则保留为零;如果[Act]大于[Goal],则保留为1,因此没有任何值超过100%。问题是,它在大多数情况下都能工作,但在其他情况下会失败,没有明显的逻辑错误,也没有我能找到的原因 有时,它无法说出[行动]>[目标]

我创建了一个MS Access数据库,用于跟踪工作中的一些项目。用户输入数据,然后在查询中聚合(使用count或sum)以计算每个区域的实际值,使用UNION连接,然后与该区域的目标进行比较。我试图输入一个IIF语句来有条件地计算[Act]/[Goal]的百分比,如果[Act]为空,则保留为零;如果[Act]大于[Goal],则保留为1,因此没有任何值超过100%。问题是,它在大多数情况下都能工作,但在其他情况下会失败,没有明显的逻辑错误,也没有我能找到的原因

有时,它无法说出[行动]>[目标],即使看它,这是显而易见的。这些数字都是整数,没有任何疯狂或格式差异。[大都会]中的公式是我希望实现的。我添加了[TEST]字段来跟踪它可能不起作用的地方,这表明Access并不总是返回[Act]>[Goal]的正确答案

我的问题是:

结果是什么(只是破损的部分):

如您所见,它适用于大多数行,但认为149小于52,128小于3。因此,它生成的[Met]值超过100%


以前有没有人遇到过这种情况,或者有什么建议?我尝试过使用刷新,在单元格中点击回车键,我能想到的一切

我认为,尽管您的列是int,但它们正在转换为变量(或至少一个变量)目标中的字符串并得到满足

如果您查看这些数据,您将看到,如果您对它们进行比较,那么对于字符串比较来说,测试结果是正确的

例如,“3”>“128”(因为第一个字符的字符值较高)

在查询中,在比较变量时,请尝试使用Val()包围变量,如下所示:


IIf(IsNull([Act]),0,IIf(Val([Act])>Val([Goal]),1,轮([Act]/[Goal]),2)‌​))

它不允许我编辑(它包含的照片没有足够的点数?)[Met]的完整公式是:Met:IIf(IsNull([Act]),0,IIf([Act]>[Goal],1,Round([Act]/[Goal],2)),[TEST]的完整公式是:TEST:IIf([Act]>[Goal],“大于”,“小于”)查询结果窗口中有一个很好的提示:文本值是左对齐的,而数字值是右对齐的。谢谢!我想知道是否是这样的,因为有人在另一个程序中遇到了问题,但不确定如何测试。这修复了所有问题:)解释清楚但仍然友好的加分。很高兴提供帮助:)问题的根源在于,联合查询通常返回数字字符串。你没有透露你的疑问,但请继续阅读。