Hallo,
habe ein Form zum Filtern der Datensätze der beiden Unterberichte. Dazu sind diese an 2 Abfragen qryDummyReport1 und 2 gebunden. im Load-Event des Hauptreports hab ich folgenden Code:
Dim varr1 As Variant
Dim RSource1 As String
Dim RSource2 As String
If Not IsNull(Me.OpenArgs) Then
varr1 = Split(Me.OpenArgs, ";")
If varr1(0) = "" Then varr1(0) = 13
If varr1(0) <= 12 Then
RSource1 = "Select * From qry_Einnahmen Where Monat>=" & varr1(0) & " And Jahr=" & Year(Now)
RSource2 = "Select * From qry_Ausgaben Where Monat>=" & varr1(0) & " And Jahr=" & Year(Now)
ElseIf varr1(0) > 13 Then
RSource1 = "Select * From qry_Einnahmen Where Jahr=" & varr1(0)
RSource2 = "Select * From qry_Ausgaben Where Jahr=" & varr1(0)
Else
End If
If varr1(1) = "" Then varr1(1) = 13
If varr1(1) <= 12 Then
RSource1 = RSource1 & " And Monat<=" & varr1(1)
RSource2 = RSource2 & " And Monat<=" & varr1(1)
ElseIf varr1(1) > 13 Then
RSource1 = "Select * From qry_Einnahmen Where Jahr=" & varr1(1)
RSource2 = "Select * From qry_Ausgaben Where Jahr=" & varr1(1)
Else
End If
End If
CurrentDb.QueryDefs("qry_DummyReport1").SQL = RSource1
CurrentDb.QueryDefs("qry_DummyReport2").SQL = RSource2
Vom FilterForm lade ich den Bericht und gib ihm 2 Werte als OpenArgs mit:
Private Sub cmdOpenReport_Click()
If Me.comb_Filter = "1 or 2" Then
DoCmd.OpenReport "rpt_Abrechnung", acViewPreview, , , , Me.comb_Zeitraum1 & ";" & Me.comb_Zeitraum2
End If
End Sub
Was jetzt noch fehlt ist ein "Requery" der Unterberichte, aber das ist ja im Load-Event nicht möglich.
Also hab ich es mit einem Timer versucht, am Ende vom Load-Event ein Me.Timerintervall = 200 einzufügen.
Aber das Timerevent wird nicht ausgelöst.
Any Ideas?
Gruß Andreas
CurrentDb.QueryDefs("qry_DummyReport1").SQL = RSource1
Wenn Du schon die Abfrage neu formulierst, dann mach das doch als erste Maßnahme vor dem Berichtöffnen, womit auch der OpenArgs-Kram entfällt. Der Unterbericht kann gar nicht anders als die Daten laden, die ihm seine Datenherkunft vorschreibt.
Danke hat geholfen.