Berichte von formularbasiertem Filter (Access 97)
Veröffentlicht am 30.12.2003
Frage:
Über ein Formular soll ein formularbasierter Filter aufgerufen werden. Man trifft bequem seine Auswahl und aktiviert den Filter. Soweit funktioniert alles bestens. Dann möchte ich nur die gefilterten Daten in einem Bericht ausdrucken. Es gibt auch eine Abfrage, welche gleichermaßen die Felder für das Formular, sowie für den Bericht zur Verfügung stellt. Das heißt, die Datenauswahl ist für Formular und Bericht dieselbe. Lediglich ist im Bericht der Filter nicht mehr aktiv. Ich habe einen Schalter auf dem Formular installiert, welcher sofort den Bericht aufruft. Jedoch bringe ich diese beiden Komponenten nicht zusammen.
Antwort:
Wenn Sie einen formularbasierten Filter aufrufen, wird das SQL-Kriterium des Filters in der Formular-Eigenschaft Filter gespeichert.
Mit der Formular-Eigenschaft FilterOn können Sie außerdem feststellen, ob der Filter gerade aktiv ist oder nicht. Diese beiden Eigenschaften sind beim Öffnen eines Berichts sehr hilfreich. Für Ihre Schaltfläche, die den Bericht öffnet, verwenden Sie folgenden VBA-Code:
Private Sub Bericht_Click()
' Beim Klicken der Schaltfläche
Dim BerichtFilter As Variant
If Me.FilterOn Then
'Filter ist aktiv, also wir wollen ihn für den
Bericht verwenden
BerichtFilter = Me.Filter
Else
'Kein Filter aktiv, also alle Datensätze im Bericht anzeigen
BerichtFilter = Null
End If
End Sub
Der Filter wird also als String-Parameter an die Methode OpenReport übergeben, um die Datensätze ggfs. einzuschränken.