具有超过2个联合语句访问权限的查询出错

时间:2013-02-13 08:00:51

标签: ms-access

我遇到了联合查询的问题。当我尝试使用2个以上的UNION语句时,我发出了这个错误 - “微软访问数据库引擎无法找到对象”。确保对象名称存在,并且您正确拼写其路径名称。“ SQL代码是:

    SELECT [Pt data 1].IDno, [Pt data 1].pt_name, [Expected visit date modified].[Visit day], [Expected visit date modified].[Visit Time], [Pt data 1].[visit_14d_st] AS Status
    FROM [Expected visit date modified] INNER JOIN [Pt data 1] ON [Expected visit date modified].IDno = [Pt data 1].IDno
    WHERE ((([Expected visit date modified].[Visit Time])="Day 14") AND (Not ([Pt data 1].[visit_14d_st])="Data Entered" And Not ([Pt data 1].[visit_14d_st])="Missed Visit"));
    UNION 
    SELECT [Pt data 1].IDno, [Pt data 1].pt_name, [Expected visit date modified].[Visit day], [Expected visit date modified].[Visit Time], [Pt data 1].[visit_28d_st] AS Status
    FROM [Expected visit date modified] INNER JOIN [Pt data 1] ON [Expected visit date modified].IDno = [Pt data 1].IDno
    WHERE ((([Expected visit date modified].[Visit Time])="Day 28") AND (Not ([Pt data 1].[visit_28d_st])="Data Entered" And Not ([Pt data 1].[visit_28d_st])="Missed Visit"));
    UNION 
    SELECT [Pt data 1].IDno, [Pt data 1].pt_name, [Expected visit date modified].[Visit day], [Expected visit date modified].[Visit Time], [Pt data 1].[visit_42d_st] AS Status
    FROM [Expected visit date modified] INNER JOIN [Pt data 1] ON [Expected visit date modified].IDno = [Pt data 1].IDno
    WHERE ((([Expected visit date modified].[Visit Time])="Day 42") AND (Not ([Pt data 1].[visit_42d_st])="Data Entered" And Not ([Pt data 1].[visit_42d_st])="Missed Visit"));

问题是,查询可以与两个查询中的任何一个一起使用,但不能与所有三个查询一起使用。我完全坚持这个。请帮忙。感谢。

1 个答案:

答案 0 :(得分:0)

UNION查询很难阅读,很难检查拼写错误。我建议你将每个陈述放入已保存的查询中(例如" qryVisit_Day14"," qryVisit_Day28")。然后使您的UNION查询如下所示:

      SELECT * FROM qryVisit_Day14
UNION SELECT * FROM qryVisit_Day28
UNION SELECT * FROM qryVisit_Day42