2017-02-15 121 views
0

我在Access中有一个在ACCDB中正常工作的查询。
我可以成功地将其数据复制/粘贴到Excel。从Excel读取时,访问查询返回不同的结果

但是,从Excel中,如果尝试使用外部数据源插入数据透视表,指向相同的查询,则某些数值字段具有奇怪的格式,并且某些数字列(查询中的公式)具有他们的价值除以100来源。
从未见过这种行为。任何建议?
整个MS-Office安装程序是在2010年
我已经在源查询完成(无明显改善):

  • 使用CCur函数(),以确保数据是一致的数据类型
  • 设置这些罪魁祸首列“标准”

的格式属性的行为是完全在同一银行的其他电脑一样。

+1

听起来像小数点分隔符问题,其中点变为逗号,反之亦然。 或读取为小数的百分比格式化百分比,不是整数百分比。 – Gustav

回答

0

我可以解决这个问题,这可能是由于2个不同的bug,可能在JetOLEDB中。

  1. Like不被Excel
    妥善处理的查询中包含使用Like一些公式:
    iif(someField Like "XX*";0;anotherField)
    更改为iif(Left(somefield;2) = "XX";0;anotherField)解决了Excel和Access之间的计算差异。
  2. 引用另一个计算列的处理方式不同
    说你有2个查询列:
    Rate: i.Rate *100(我是一个表的别名)
    Amount: Rate*Price
    访问计算使用Rate计算列Amount,而Excel使用Rate字段来自表i.因此,我必须将Amount表达式更改为:
    Rate: i.Rate *100
    Amount: i.Rate *100*Price
    ,因为Excel似乎并不总是使用表格中的Ratei.Rate)。