直接和通过 VBA excel 运行相同的存储 Access SQL 查询时获得不同的结果

Posted

技术标签:

【中文标题】直接和通过 VBA excel 运行相同的存储 Access SQL 查询时获得不同的结果【英文标题】:Getting different results while running the same stored Access SQL query directly and through VBA excel 【发布时间】:2012-12-27 07:39:11 【问题描述】:

嘿,下面的存储访问查询在通过 VBA excel 运行时为 POEventCode 提供“NA”,并且在直接从访问中运行时给出正确的结果。为什么会出现这种异常?

SELECT D.[Event Code] & D.[Week Code] AS POEventCode, *  
INTO A
FROM (SELECT IIf([Advertisement type]='Tabloide','TAB',
    IIf([Advertisement type]='Flyer','FLY','NA')) AS [Event Code], 
    IIf(([Start Date]>[SD] And [Start Date]<[ED]), 
        [Month] & Right([WM_WK],2),'NA')  
        AS [Week Code], *  
    FROM [Feature A-Traits] AS C, [Event Code] AS B) 
AS D
WHERE (D.[Week Code]) Not Like '*NA*'  
    And (D.[Event Code]) Not Like '*NA*';

【问题讨论】:

这是一个看起来很混乱的 SQL,你想达到什么目的? 【参考方案1】:

如果您使用 ADO 通过 VBA Excel 运行查询,那么您的通配符必须是 % 而不是 *,所以:- Not Like '%NA%'

【讨论】:

我尝试对此投赞成票,然后投反对票(最终决定我不确定答案的有效性)。我最终得到了一个净反对票,这不是故意的。我现在似乎无法解决问题,我深表歉意。 @Smandoli - 没问题。如果您无法让 Excel 查询使用 % 通配符,请再次发布更多信息(您在查询的两个地方都需要它们)。

以上是关于直接和通过 VBA excel 运行相同的存储 Access SQL 查询时获得不同的结果的主要内容,如果未能解决你的问题,请参考以下文章

excel2010每次写好VBA运行完成之后,保存为xlsm格式。关闭后就打不开了,也不能创建副本?

excel 运行VBA效率变低了 原来excel运行VBA程序,很快就执行完毕,现在运行相同的程序,效率变得很慢

VBA宏运行速度为啥比Excel自带函数慢

利用VBA向excel表格中写入数据后,再次运行程序的话写入速度会非常慢

用VBA直接在WORD中能正常运行的方法或属性相关常量设置,在EXCEL中处理WORD文档时都有哪些变化?

如何通过Excel VBA和Outlook实现自动发送邮件功能