Один из вариантов: пишем процедуры на открытии каждого подотчета и самого отчета. В процедурах составляем запрос для отчета (саботчета). Например,
В самом отчете:
Private Sub Report_Open(Cancel As Integer)
Me.Recordsource = "select ID, fld1, fld2, ... from MyTbl1 where id_klient = " & Forms!MainForm.cbClients
В сабах свои процедуры:
Private Sub Report_Open(Cancel As Integer)
Me.Recordsource = "select .... from tbl1 where Dt1 between '" & Forms!MainForm.Dt1 & "' and '" & Forms!MainForm.Dt2 & "'"
End Sub
Private Sub Report_Open(Cancel As Integer)
Me.Recordsource = "select .... from tbl2 where Dt1 between '" & Forms!MainForm.Dt1 & "' and '" & Forms!MainForm.Dt2 & "'"
End Sub
Могут быть и другие, более эффективные варианты. Зависит от задачи