我在Access中遇到了一个奇怪的行为。我在我的VBA项目中基本上有两个预定义的查询,这些查询在程序的不同部分都需要,这些查询工作正常。
现在我需要一个将结果集作为一个返回的查询。所以我去解决方案是创建一个结合其他两个查询的新查询。就像:
SELECT * FROM query1
UNION
SELECT * FROM query2;
两个查询的结果都具有相同的布局。但是如果query1的结果为空并且query2在其结果中有一些记录,我会从上面的代码中收到一个空结果。另一种方式(query2的空结果 - 查询1的几个结果)它给我一个完整的结果。
我还测试了上面的代码并切换了两个查询。但行为是一样的。 UNION ALL也是如此。
这可能是什么问题?
编辑:所以,我做了一些进一步的测试。原因似乎是在query2中。它甚至不能与自己结合在一起。所以,如果我尝试:
SELECT * FROM query2
UNION ALL
SELECT * FROM query2;
我再次得到一个空集。当我在SELECT-part中使用一个字段时也一样。
Edit2:好吧它变好了。数据集为空,但在查询结果的表视图中,我拥有列过滤器中的所有数据。但是,如果我做一个Count(rowname),我得到一个0作为回报。
答案 0 :(得分:0)
经过两天的测试后,我厌倦了将代码移到另一台机器上。在那里工作。因此,在将其导出到新机器并将其传输到我的PC后,一切都正常运行。所以我想这是一个与我正在使用的前端有关的问题。
所以,如果你遇到了什么。类似地确保您的项目不会以任何方式被破坏。 (即使Access没有显示任何错误)