MS Access:引用其他报告的报告

时间:2011-07-14 14:23:10

标签: ms-access

我有几个MS Access 2010报告,其中包含引用其他报告上其他控件的控件。因此,例如,如果 report1 有一个名为 report1_textBox 的文本框,则此文本框从 report0 上的文本框中获取其值< i> report0_textBox ,然后我将 report1_textBox 控制源属性设置为:

= [Reports]![report0]![report0_textBox]

我创建了一个表单,用户可以使用该表单选择要打开的报表,当用户选择依赖于其他报表的报表时,我的代码会在打开所选报表之前打开这些报表。这在某些情况下工作正常,但在其他情况下我得到一些奇怪的行为。

回到上面的例子,我遇到的情况是,即使我打开 report0 ,然后打开 report1 ,文本框 report1_textBox 也会显示 #Error ,好像 report0 已关闭或不存在。但是,如果我然后点击 report0 并更改其视图然后将其更改回来,然后返回 report1 并滚动一点,文本框 report1_textBox “神奇地”从 #Error 更改为正确的值。我打开报告后尝试点击“全部刷新”按钮,它不会更新文本框。

有没有人知道如何解决这个问题或者至少解决这个问题?

谢谢!

添加:理想情况下,我不想像我现在那样打开多个报告。如果用户想要查看报告,我只想打开该报告,但是据我所知,如果所选报告需要来自另一个报告的数据,那么其他报告需要打开。我最终可以通过编写VBA代码来执行查询来解决这个问题,但我想避免这种情况,特别是因为我已经拥有了数据我需要 - 它只是在另一份报告中。有谁知道是否有可能实现这种理想情况?谢谢!)

1 个答案:

答案 0 :(得分:0)

我建议使用VBA代码。

实际上,您的问题包含答案(部分) - 如果您需要其他报告中的数据,则必须首先打开必须报告。但是,以下代码可能会对您有所帮助。 您可以将报告打开为隐藏:

...
DoCmd.OpenReport "report0", acViewReport, , , acHidden
...

但同样,我建议编写VBA代码以使用其他报告中的现有查询来提取数据,或者创建新的查询[查询]。