在Excel中连接到Access查询的限制是什么

时间:2012-12-14 14:38:57

标签: sql excel ms-access ms-access-2007 union-all

我有一个Access 2007数据库,它有许多表,有些是相当大的(100,000多条记录);我创建了一个union query来将多个表中的一些相同类型的数据拉入一个大型查询中,以进行数据透视表操作和报告。例如:

SELECT Language
FROM Table1
UNION ALL SELECT Language
FROM Table2
UNION ALL SELECT Language
FROM Table3;

这很有效。但是,我很快发现,当从Excel 2007连接到数据源时,union query将不会显示。因此,我创建了第二个查询来引用union query。像这样:

SELECT *
FROM [The Above Union Query];

此查询有效,最初可以从Excel访问。时间过去了,我添加了更多数据。突然,当我从Excel连接到我的Access数据库时,我引用联合的查询已经消失。 MS Access没有显示问题的迹象(Access中显示数据),我的其他非联合查询显示在Excel 2007中......但不是引用该联合的查询。

可能发生什么事?为什么它会消失?

我注意到,如果我将union query中的一些引用表切换到较小的表(行数较少),则查询会突然再次显示在Excel中。至少,我认为这就是差异所在。我真的无法理解为什么有些union queries会出现,有些人会出现。

很难过,需要一些指导。感谢。

1 个答案:

答案 0 :(得分:0)

如果您在Union Query而不是Select Query上执行了Make Table Query,该怎么办?然后只是让Excel引用新表?这至少可以告诉你是否超过Excel中的行限制,但这似乎不太可能,因为所有报告都显着增加了Excel 2007中的行限制而不是Excel 2003.你甚至可以在Excel中编写一个宏来告诉Access在获取数据之前运行Make Table。