MS Access是否将对象保持打开状态?

时间:2011-12-05 16:56:31

标签: ms-access

我正在尝试弄清楚MS Access在构建和运行报告时如何处理打开的数据库对象。

我在每个报告中都有几十个查询,并且由于我的数据库已规范化,因此每个查询都会查看许多不同的表。但是,我似乎总是达到打开这么多数据库对象的程度,Access不会让我在报告中包含更多查询。我对如何生成报告的想法可能很幼稚,但我只是假设Access会运行查询,将数据放在报告中,关闭查询和所有相关对象,然后重复。但事实似乎并非如此。

我唯一关心的原因是因为我正在努力加快报告速度。我在某处读到你不应该构建你的表来使查询变得容易,但是为了避免每次我尝试运行报告时发生的7或8分钟的时间 - 我已经重新构建了表格,所以查询在生成数据时可以使用更少的对象。这些表仍然在一定程度上被标准化,但我想唯一的缺点是我在技术上将计算存储在表中。例如,我必须报告我们客户群的当前年龄,而不是使用简单的switch语句对其进行分组(这需要我查询保存生日的单独表),我已经设置了年龄范围(18-22) ,23-27,等)直接在表中。

无论如何,如果有人可以告诉我访问如何关闭数据库对象,也许我可以找出为什么我的报告太慢了。

由于

1 个答案:

答案 0 :(得分:0)

假设您确实拥有(正确的)规范化表,并且表实际上无法减少,并且您确实需要在主报表中附加所有这些子报表,则应创建临时表以设置为报表的DataSource。这将有点无聊,但您可以创建执行查询的步骤并生成一个或多个临时表。使用您在报告中所需的筛选数据创建这些表时,您应该比以前更快地打开报告。在报告的展览/印刷之后,您应该删除临时表或保留它们,直到您需要这些特定数据,如缓冲区。

否则,我建议您考虑数据库的entyre设计,如果可能的话。