在我经常在Access上使用的联合查询上突然出现“表达式输入错误或过于复杂”错误

时间:2018-11-12 14:57:51

标签: sql ms-access ms-access-2013

我有一个联合查询,它将来自其他几个查询的数据汇总在一起。这些查询根据在表单上输入的日期搜索数据。

我一直在使用此查询最长的时间,甚至在我知道它有效的几个月前就已经对此进行了备份,但是突然出现了此错误。

联合查询

SELECT MnthlyFireExCnt.ProjectCriteria AS Project, MnthlyFireExCnt.CountOfFire_Extinguisher_Location_ID_ AS NumberOf, MnthlyFireExCnt.Type
FROM MnthlyFireExCnt

UNION ALL 

SELECT MnthlyFrstAdCnt.ProjectCriteria, MnthlyFrstAdCnt.CountOfForm_Record_Number, MnthlyFrstAdCnt.Type
FROM MnthlyFrstAdCnt

UNION ALL 

SELECT MnthlyIncCnt.ProjectCriteria, MnthlyIncCnt.CountOfDate_Time_Reported, MnthlyIncCnt.Occurrence
FROM MnthlyIncCnt

UNION ALL 

SELECT MnthlyJHACnt.ProjectCriteria, MnthlyJHACnt.CountOfDate, MnthlyJHACnt.Type
FROM MnthlyJHACnt

UNION ALL 

SELECT MnthlySiteObsvCnt.ProjectCriteria, MnthlySiteObsvCnt.CountOfTime, MnthlySiteObsvCnt.Type
FROM MnthlySiteObsvCnt

UNION ALL 

SELECT MnthlySSICnt.ProjectCriteria, MnthlySSICnt.CountOfDate, MnthlySSICnt.InspCriteria
FROM MnthlySSICnt

UNION ALL 

SELECT MnthlyToolTCnt.ProjectCriteria, MnthlyToolTCnt.CountOfDate_Time, MnthlyToolTCnt.Type
FROM MnthlyToolTCnt


UNION ALL SELECT MnthlyWSSCnt.ProjectCriteria, MnthlyWSSCnt.CountOfForm_Record_Number, MnthlyWSSCnt.Type
FROM MnthlyWSSCnt;

这是将联合查询的数据汇总在一起的查询之一。

SELECT SSIReportsProjectCrit.ProjectCriteria, Count(MnthlyFireExData.Fire_Extinguisher_Location_ID_) AS CountOfFire_Extinguisher_Location_ID_, "Fire Extinguisher(s) Inspected" AS Type
FROM SSIReportsProjectCrit LEFT JOIN MnthlyFireExData ON SSIReportsProjectCrit.ProjectCriteria = MnthlyFireExData.Site_Location
GROUP BY SSIReportsProjectCrit.ProjectCriteria, "Fire Extinguisher(s) Inspected";

此查询没有问题。它正在拉数据。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

测试联合查询是否可以单独工作。

  • 如果没有,则表设计中的某些内容可能已更改。无论如何,请检查查询是否返回相同类型的数据。
  • 如果他们这样做了,并且您知道a)整个联合查询完全没有改变,并且b)过去一直有效,那么您的直觉认为该查询过去并一直很好,这很可能是正确的。

根据我的经验,我发现这也可能是由于Access文件损坏所致。有时候,如果找不到其他合理的解释,我会先检查一下。在这种情况下,对我有用的是:

  1. 尝试压缩和修复相关文件
  2. 如果问题仍然存在,则创建一个新的Access文件,并将所有对象从旧文件导入到新文件中,添加所有VBA参考/库,对其进行编译,压缩和修复,然后查看是否可以解决该问题。