2017-02-11 88 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