【问题标题】:MS access 2007 calculated field errorMS access 2007 计算字段错误
【发布时间】:2016-09-02 16:31:09
【问题描述】:

我有一个包含 3 个计算字段的 MS Access 2007 查询。一个添加来自 3 个字段(存储桶 4、存储桶 5 和存储桶 6)的总计,称为“存储桶 4-6 总计”,另一个执行相同操作,但对于基于不同日期的字段,我将其称为“日期 2 存储桶 4-6 Total”这两个字段按预期工作,我遇到的问题是第三个字段减去“Buckets 4-6 Total”减去“Date 2 Buckets 4-6 Total”。

这适用于总数为 0 - 0 或任何值(例如 400 - 200 甚至 400 - (1000))的大多数计算,但适用于“桶 4-6 总计”和“日期”时的计算2 Buckets 4-6 Total”相同(没有变化),该字段返回无效值,例如:4.54747350886464E-13 或 9.09494701772928E-13,它也忽略了我的格式,因此它显示 2 个小数位。

我还应该补充一点,这个查询由 4 个不同的查询组成,上面提到的“总计”字段从另一个查询的 3 个不同字段中获取总计,这些字段已经根据其他条件汇总,不确定是否是问题出在哪里。

感谢任何帮助。

【问题讨论】:

    标签: ms-access field


    【解决方案1】:

    您的问题是浮点运算的位错误。

    将数据类型从 Double 更改为 Currency,或在执行减法之前转换为 Currency:

    BucketDifference: CCur([Buckets 4-6 Total]-CCur([Date 2 Buckets 4-6 Total])
    

    【讨论】:

      【解决方案2】:

      您的问题可能源于使用了太多查询,而错误可能出现在任何单个查询中。很容易忘记几个查询的逻辑可能如何组合,而且我发现 Access 并不总是能很好地引用分层查询,尤其是当涉及到很多查询时。

      如果您完全可以阅读 SQL,则可以查看查询的 SQL 视图,并确保代码正在执行您认为在设计视图中设置的精确计算(因为您没有发布代码,我假设您没有不要自己编码)。

      如果您编写 SQL,最好的方法是将所有逻辑组合到一个更大的查询中,您可以确保 Access 在引用不同的查询时不会搞砸。

      没有看到您的查询代码,我无法给您更具体的建议。

      【讨论】:

        猜你喜欢
        • 2017-04-28
        • 1970-01-01
        • 2012-06-04
        • 2023-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-23
        • 1970-01-01
        相关资源
        最近更新 更多