一尘不染

访问是重写-破坏了-我的查询!

sql

我在MS Access(2003)中有一个使用子查询的查询。子查询部分如下所示:

...FROM (SELECT id, dt, details FROM all_recs WHERE def_cd="ABC-00123") AS q1,...

当我切换到“表视图”以验证结果时,一切正常。

然后,我希望将此查询的结果打印在报表的页眉上(查询返回的是页眉内容的一行)。我收到一条错误消息,因为查询突然被重写为:

...FROM [SELECT id, dt, details FROM all_recs WHERE def_cd="ABC-00123"; ] AS q1,...

因此,可以将圆括号自动替换为方括号,Access认为需要这样做,很好!但是,为什么要;在子查询中添加,从而导致其失败呢?

我想我可以创建这些新的子查询查询对象,但似乎傻了一点,我应该 这样做。


阅读 103

收藏
2021-05-16

共1个答案

一尘不染

嗯,Access的乐趣。通常,查询设计器不能很好地处理派生表。实际上有许多构造,Jet会尊重在查询设计器中无法正确查看的构造。实际上,QBE会粉碎(正如您所看到的那样)许多这些复杂的查询。通常,您应该简单地假设您不能安全地在QBE中查看派生表或“复杂”查询的设计,而只能在代码中。

2021-05-16