MS 访问查询未在 Excel 中正确运行
Posted
技术标签:
【中文标题】MS 访问查询未在 Excel 中正确运行【英文标题】:MS access query not running correctly in excel 【发布时间】:2015-06-12 09:00:09 【问题描述】:以下查询在 MS Access 2010 中运行正常,但在 MS Excel 2010 中运行时返回的记录较少。
SELECT Population.[Country Grouping], Population.[Legal Staff Country], Population.[Service Line], Population.[Indirect Function], Population.Corporation, IIf(IsNull([Q_Man_SEC_Moodle.DAS])=False,"Successful",IIf([Q_Man_SEC_Successful.History Status]="Successful","Successful",IIf([Q_Man_SEC_InProgress.History status]="Not Evaluated","Not Evaluated","Not Registered"))) AS Result, 1 AS [Counter]
FROM ((Population LEFT JOIN Q_Man_SEC_Successful ON Population.[User Name] = Q_Man_SEC_Successful.[Learner Das id]) LEFT JOIN Q_Man_SEC_InProgress ON Population.[User Name] = Q_Man_SEC_InProgress.[Learner Das id]) LEFT JOIN Q_Man_SEC_Moodle ON Population.[User Name] = Q_Man_SEC_Moodle.DAS;
我认为问题出在Isnull([Q_Man_Sec_Moodle.DAS]) = False
部分。
看起来这些记录不包括在内。Q_Man_Sec_Moodle
查询如下:
SELECT DISTINCTROW [Moodle Data].DAS
FROM [Moodle Data]
WHERE ((([Moodle Data].SCORM) Like "*SEC_AW*") AND (([Moodle Data].[completed?])=1))
GROUP BY [Moodle Data].DAS;
非常感谢任何帮助。
【问题讨论】:
我找到了解决方案,所以在这里分享。 Excel 不接受带有 * 作为通配符的 LIKE。将其更改为 ALIKE 并使用 % 解决了问题:-) 【参考方案1】:这样吗?
SELECT DISTINCTROW [Moodle 数据].DAS FROM [Moodle 数据] WHERE ((([Moodle Data].SCORM) ALIKE "%SEC_AW%") AND (([Moodle Data].[completed?])=1)) GROUP BY [Moodle 数据].DAS;
【讨论】:
是的,完全一样。以上是关于MS 访问查询未在 Excel 中正确运行的主要内容,如果未能解决你的问题,请参考以下文章
如何使 MS Access 直通查询在 SQL Server 中正确运行
Excel VBA 连接到 MS Access(读/写)到多用户表/查询