目前我正在开发一个基于Access 2013的应用程序,用于跟踪学校学生的评估信息。数据库只包含3个简单的表:
- tblSubjects=包含不同的主题信息
- tblStudents=包含学生的个人信息
- tblMarks=包含每个学生的学科评估分数
以及基于这3个表的少数其他查询。现在我有一个(有点难看)sql查询,如下所示:
SELECT tblStudents.*,
(SELECT COUNT(*) FROM qryPapers WHERE qryPapers.STUDID=tblStudents.STUDID) AS PAPER_COUNT,
(SELECT SUM(MR_TOTAL) FROM qryPapers WHERE qryPapers.STUDID=tblStudents.STUDID) AS ALL_TOTAL,
(SELECT MIN(MR_TOTAL) FROM qryPapers WHERE qryPapers.STUDID=tblStudents.STUDID AND qryPapers.PAPER_TYPE LIKE 'E?') AS MIN_ELEC,
(SELECT COUNT(*) FROM qryPapers WHERE qryPapers.STUDID=tblStudents.STUDID AND qryPapers.PAPER_TYPE LIKE 'A?') AS LANG_PS,
(SELECT COUNT(*) FROM qryPapers WHERE qryPapers.STUDID=tblStudents.STUDID AND qryPapers.PAPER_TYPE LIKE 'E?') AS ELCT_PS,
IIf([PAPER_COUNT]>5,ALL_TOTAL-MIN_ELEC,ALL_TOTAL) AS [GT],
IIf([LANG_PS]=2 And [ELCT_PS]>=3,'PASS','FAIL') AS STATUS
FROM tblStudents;
问题是,每当我试图在该查询的STATUS字段上运行筛选器时(如STATUS='PASS'时),整个ACCESS都会首先停止响应!然后关闭并重新启动。
我不知道这里发生了什么。我见过更复杂的查询运行得非常好,但这次没有。任何帮助都将不胜感激。
我在Access中经历了很多。我不知道问题的原因,但我只是将查询导出到Excel或基于查询创建一个表以应用筛选。