2017-02-11 28 views
0

首先,我想說我確實試圖首先解決這個問題。衝浪板和打電話給朋友(沒有運氣)。Access中的表達式在Excel中不能正確顯示

這是我的問題,希望有人能幫助。

問題:我需要在顯示值HOME或AWAY的數據中創建一個字段,該字段基於在其他字段中找到的一個字符串。當我在Access中的表格視圖中查看查詢時,我在Access中創建的快遞完美工作。但是,當我從Access中導入數據到Excel時,顯示的唯一值是HOME。

數據庫:MS SQL服務器2016(最新版+補丁)

查詢:MS訪問2013

目標:提取數據到Excel 2013製作容易閱讀和操作Excel數據透視表(高管像此)

HOME AWAY: IIf([Trailer 1] Like "*TAP*","AWAY", 
IIF ([TRAILER 2] Like "*TAP*","AWAY", 
IIF ([TRAILER 3] Like "*TAP*","AWAY", 
IIF ([TRAILER 4] Like "*TAP*","AWAY", 
IIF ([TRAILER 5] Like "*TAP*","AWAY", 
IIF ([TRAILER 6] Like "*TAP*","AWAY", 
IIF ([TRAILER 7] Like "*TAP*","AWAY", 
IIF ([TRAILER 8] Like "*TAP*","AWAY", 
IIF ([TRAILER 9] Like "*TAP*","AWAY", 
IIF ([TRAILER 10] Like "*TAP*","AWAY","HOME")))))))))) 

我已經重新寫入上述式約6不同的方式,其結果是在總是訪問相同的在示出的值HOME或AWAY正確如果任何10個拖車包含字符串TAP。只要我將數據透視表導入Excel,唯一的值就是HOME。

我的計算數字表達式根本沒有任何問題。

任何想法?

+1

因此,您在Access中查詢顯示正確的結果?然後將結果導入到Excel中; http://www.excelandaccess.com/how-to-import-access-data-to-excel-using-the-get-external-data-from-access-option/ – Absinthe

+0

請顯示打電話的Excel vba連接。您是否將Excel連接到Access或SQL Server ?. – Parfait

+0

@Absinthe正是我在做什麼 – TorontoDan

回答

0

因爲您的Excel的GUI功能區選項的方式連接到通過ODBC的MS Access(而不是通過MSACCESS.EXE GUI應用程序) - 外部數據模塊,該LIKE通配符必須使用%而不是*。百分比是ANSI-92 SQL通配符,星號是ANSI-89通配符。關於此問題,請參閱官方MSO documentation

這就是沒有數據返回的原因,因爲LIKE表達式字面上在字符串列中查找星號。考慮重新編寫查詢,這將僅在MS Access中返回HOME,因爲默認情況下Access .mdb/.accdb文件使用ANSI-89,最有可能與先前發行版向後兼容。

HOME AWAY: IIf([Trailer 1] Like "%TAP%","AWAY", 
IIF ([TRAILER 2] Like "%TAP%","AWAY", 
IIF ([TRAILER 3] Like "%TAP%","AWAY", 
IIF ([TRAILER 4] Like "%TAP%","AWAY", 
IIF ([TRAILER 5] Like "%TAP%","AWAY", 
IIF ([TRAILER 6] Like "%TAP%","AWAY", 
IIF ([TRAILER 7] Like "%TAP%","AWAY", 
IIF ([TRAILER 8] Like "%TAP%","AWAY", 
IIF ([TRAILER 9] Like "%TAP%","AWAY", 
IIF ([TRAILER 10] Like "%TAP%","AWAY","HOME")))))))))) 

有兩種方法可以讓使用LIKE在Excel和Access中相同的查詢兼容。

數據庫設置

每上述MS鏈接,設置的MS Access使用SQL Server ANSI 92語法。具體來說,在File \ Options \ Object Designers下,選中SQL Server兼容語法(ANSI 92)此數據庫複選框。一旦完成,百分比通配符必須用於運行LIKE的查詢中。

都算

使用ALike運營商%通配符,而無需更改默認設置。

HOME AWAY: IIf([Trailer 1] ALike "%TAP%","AWAY", 
IIF ([TRAILER 2] ALike "%TAP%","AWAY", 
IIF ([TRAILER 3] ALike "%TAP%","AWAY", 
IIF ([TRAILER 4] ALike "%TAP%","AWAY", 
IIF ([TRAILER 5] ALike "%TAP%","AWAY", 
IIF ([TRAILER 6] ALike "%TAP%","AWAY", 
IIF ([TRAILER 7] ALike "%TAP%","AWAY", 
IIF ([TRAILER 8] ALike "%TAP%","AWAY", 
IIF ([TRAILER 9] ALike "%TAP%","AWAY", 
IIF ([TRAILER 10] ALike "%TAP%","AWAY","HOME")))))))))) 
+0

這個作品謝謝你! – TorontoDan