Один из способов сделать это, не передавая более 1 параметра, - поместить сводку в подотчет и открыть этот подотчет одним нажатием кнопки.К сожалению, под-отчеты в нижних колонтитулах содержат ошибки, поэтому вы должны отфильтровать подотчет вручную.мы начинаем с аналогичной простой нормализованной базы данных: Затем я добавил простую форму с множественным списком семейств и кнопкой для открытия отфильтрованного отчета.
Private Sub cmdSearch_Click()
'Build Filter for report
Dim strFilter As String
Dim firstselectedfamily As Boolean
firstselectedfamily = True
For i = 0 To lstFamilys.ListCount - 1
If lstFamilys.Selected(i) = True Then
If firstselectedfamily = True Then
strFilter = "FamilyFK = " & lstFamilys.Column(0, i)
firstselectedfamily = False
Else
strFilter = strFilter & " OR FamilyFK = " & lstFamilys.Column(0, i)
End If
End If
Next i
'open report with filter
DoCmd.OpenReport "ExampleReport", acViewReport, "", strFilter, acNormal
End Sub
вот пример отчета с кнопкой для отображения сводки дубликатов:
Кнопка показываетскрытый подотчет, основанный на запросе, который находит дубликаты:
Запрос дубликатов выполняется путем группировки на основе семейства и теста, где как счетчик familyID, так и TestID равенминимум 1: Обычно сводный отчет связывается с основным отчетом основными дочерними отношениями, но сводка выглядит естественной в нижнем колонтитуле основных отчетов, где подотчеты имеют ошибки и не фильтруются.правильно.Чтобы обойти ошибку, мы предоставляем код для фильтрации сводного отчета:
Private Sub cmdSummary_Click()
'filter summary form by using the main reports filter
Me.subfrmSummary.Report.Filter = Me.Filter
Me.subfrmSummary.Report.FilterOn = True
Me.subfrmSummary.Requery
'show/hide summary form
If Me.subfrmSummary.Report.Visible = False Then
Me.subfrmSummary.Report.Visible = True
Else
Me.subfrmSummary.Report.Visible = False
End If
End Sub
Опять же, чтобы обойти ошибку, не связывайте подчиненный отчет с основным отчетом с отношениями мастер / потомок.Вместо этого установите фильтр с кодом.