2017-02-15 117 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)。