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 Query 中的问题设置参数

如何使 MS Access 直通查询在 SQL Server 中正确运行

使用正确的列和行格式访问对 Excel 工作表的查询

Excel VBA 连接到 MS Access(读/写)到多用户表/查询

MS 访问错误:SELECT 语句包含拼写错误或丢失的保留字或参数名称,或者标点符号不正确

MySQL 索引未在大型数据库中使用