是否可以在第一次运行时缓存查询或报告?似乎打开报告将重新查询数据源。对于某些查询,数据源不会经常更改,我担心缓存过期(用户在数据库更改时得到通知),并且用户可以更轻松地打开立即报告,而不是每次他们想要查看数据时都要等待几分钟(虽然我知道如果他们关闭文件,缓存就会丢失 - 那没关系。)
使用Access 2003,数据来自与Oracle的ODBC连接。
答案 0 :(得分:1)
大多数服务器数据库缓存临时SQL语句。也就是说,如果您运行报告,Oracle应该缓存结果,如果它再次发现SQL语句,则从缓存中提交结果,而不是从头开始检索。我知道SQL Server会这样做,我假设任何企业级数据库都会这样做。当然,除了缓存之外,还有某种形式的检查以确保缓存的数据仍然是最新的。我不知道DBA对其工作原理的控制程度,但您可能会考虑实现此服务器端。临时表也可能是一种解决方案。
答案 1 :(得分:0)
您是否可以在数据库打开的整个过程中保持报告打开?打开数据库时将其隐藏。
DoCmd.OpenReport "YourReport", acViewPreview,,,acHidden
然后在数据库打开时永远不要关闭它。
或者,由于您可以处理缓存过时,也许您可以将报表的数据存储在本地表中以便更快地访问。由于用户知道新数据何时可用,因此请为其提供一个命令按钮,用于清空本地表并将最新的Oracle数据放回。