【问题标题】:Access query returns a different result when read from Excel从 Excel 读取时,Access 查询返回不同的结果
【发布时间】:2017-02-15 08:44:23
【问题描述】:

我在 ACCDB 中有一个在 Access 中运行良好的查询。
我可以成功地将其数据复制/粘贴到 Excel。

但是,在 Excel 中,如果我尝试使用外部数据源插入数据透视表,并指向同一个查询,那么某些数字字段的格式会很奇怪,而某些 计算的 数字列(公式查询)与源相比,它们的值除以 100。
从未见过这种行为。有什么建议吗?
整个 MS-Office 设置是在 2010 年。
我在源查询中已经做了什么(没有明显的改进):

  • 使用 CCur() 来确保数字是一致的数据类型
  • 将这些罪魁祸首列的 Format 属性设置为“标准”

在同一银行的其他 PC 上的行为完全相同。

【问题讨论】:

  • 听起来像是小数点分隔符问题,点变成逗号,反之亦然。或者被读取为小数的百分比格式的小数,而不是整数百分比。

标签: excel ms-access


【解决方案1】:

我可以解决由 2 个不同的错误引起的问题,可能是在 JetOLEDB 中。

  1. Like 没有被 Excel 正确处理
    该查询包含一些使用 Like:
    iif(someField Like "XX*";0;anotherField) 的公式。
    将此更改为 iif(Left(somefield;2) = "XX";0;anotherField) 解决了 Excel but 和 Access 之间的计算差异。
  2. 对另一个计算列的引用处理方式不同
    假设您有 2 个查询列:
    Rate: i.Rate *100(我是表别名)
    Amount: Rate*Price
    Access使用Rate计算列计算Amount,而Excel使用表i中的Rate字段。因此我不得不将Amount表达式更改为:
    Rate: i.Rate *100
    Amount: i.Rate *100*Price 因为 Excel 似乎并不总是使用表中的Rate (i.Rate)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-08
    • 1970-01-01
    • 2021-11-27
    • 1970-01-01
    • 2016-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多