MS Access SQL - UNION返回空集

时间:2017-07-26 18:48:21

标签: sql ms-access access-vba

我在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作为回报。

1 个答案:

答案 0 :(得分:0)

经过两天的测试后,我厌倦了将代码移到另一台机器上。在那里工作。因此,在将其导出到新机器并将其传输到我的PC后,一切都正常运行。所以我想这是一个与我正在使用的前端有关的问题。

所以,如果你遇到了什么。类似地确保您的项目不会以任何方式被破坏。 (即使Access没有显示任何错误)