Это не так тривиально.Отчеты, формы и запросы по умолчанию поддерживают только один экземпляр.
Мой подход заключается в следующем:
В отчете добавьте одну строку вверху (после Option Explicit
):
Public Myself As Object
Затем вместо текущего кода используйте следующее:
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
Откроется два отчета с двумя разными фильтрами.
Обратите внимание, что они обаоткрыт в представлении по умолчанию, это не может быть изменено.Кроме того, есть несколько трудностей с такими объектами, например, тот факт, что вы не можете указать экземпляр отчета в коллекции Reports
или использование нескольких операторов DoCmd
.
Аллен Браун имеет статью о формах с несколькими экземплярами, которая примерно такая же, как отчеты.Его подход несколько более сложен, чем этот, но более прост, чем тот, который я на самом деле использую (который включает предварительно объявленный объект, который управляет этими формами с несколькими экземплярами)