访问VBA,同时打开同一报表的多个实例

1 ms-access vba

我的目标是从表单中打开报告的多个实例,仅显示 ID 的更改。

所以,VBA代码是:

    DoCmd.OpenReport "ordentallerSobre", acViewPreview, , "id = 20370"
    DoCmd.OpenReport "ordentallerSobre", acViewPreview, , "id = 20371"
Run Code Online (Sandbox Code Playgroud)

然后,只有最后一个报告显示为选项卡。但我需要展示他们两个。对于这个看似微不足道的问题有什么解决方案吗?

Eri*_*k A 5

这并不是一件小事。默认情况下,报表、表单和查询仅支持一个实例。

我的方法如下:

在报告中,在顶部添加一行(在 后面Option Explicit):

Public Myself As Object
Run Code Online (Sandbox Code Playgroud)

然后,使用以下代码代替当前的代码:

Dim rpt As Report_ordentallerSobre
Set rpt = New Report_ordentallerSobre
Set rpt.Myself = rpt
rpt.Filter = "id = 20370"
rpt.FilterOn = True
rpt.Visible = True
Set rpt = New Report_ordentallerSobre
Set rpt.Myself = rpt
rpt.Filter = "id = 20371"
rpt.FilterOn = True
rpt.Visible = True
Run Code Online (Sandbox Code Playgroud)

这将打开两个具有两个不同过滤器的报告。

请注意,它们都在默认视图中打开,无法更改。此外,此类对象还存在一些困难,例如您无法指定集合中的报表实例Reports或使用多个DoCmd语句。

Allen Browne有一篇关于多实例表单的文章,与报表大致相同。他的方法比这个方法更复杂,但比我实际使用的方法更简单(涉及管理这些多实例表单的预先声明的对象)