Hallo tr007,
falls du wirklich unterschiedliche Abfragen hast die auf unterschiedlichen Tabellen realisiert sind und die Felder, die du anzeigen willst gleich sind,kannst du dies beim "Report_Open" -Ereignis setzen. Dazu fügst du z.B.folgenden Code in den Bericht ein:
Private Sub Report_Open(Cancel As Integer)
If Me.OpenArgs = 1 Then
Me.RecordSource = "Abfrage1"
ElseIf Me.OpenArgs = 2 Then
Me.RecordSource = "Abfrage2"
End If
End Sub
Ich habe dann in einem Formular mal drei Buttons eingefügt und folgenden Code hinterlegt:
Private Sub Befehl0_Click()
DoCmd.OpenReport "Bericht1", acViewPreview, , , , 1
End Sub
Private Sub Befehl1_Click()
DoCmd.OpenReport "Bericht1", acViewPreview, , , , 2
End Sub
Je nachdem, welches "Openargs" ist verwende, wird die Abfrage1 oder Abfrage2 herangezogen.
Falls deine Abfragen sich alle auf mehr oder weniger eine Tabelle (oder join) beziehen, würde ich anders vorgehen. Dann benutzt du den "where"-Parameter von Openreport, Bsp.:
Private Sub Befehl3_Click()
DoCmd.OpenReport "Bericht1", acViewPreview, , "Nachname like '*mann'"
End Sub
und bindest die Grundtabelle an den Report.
Wie findest du diesen Ansatz?
Gruß
Ralf