Mit der folgenden Funktion wird zunächst der passende Datensatz gesucht und anschließend ein Recordset
für die Detaildaten (Anlagefeld) erzeugt.
Private Function GetAnlagen() As String
Dim rsta As Recordset
Dim s As String
Dim i As Integer
s = ""
rst.Seek "=", Id.value
Set rsta = rst.Fields("MeineAnlagen").value
Mit diesem Recordset können Sie die einzelnen Anlagen abarbeiten (wir erzeugen eine Textliste):
Do While Not rsta.EOF
s = s & Format(i, "00 : ") & rsta!filename & vbCrLf
rsta.MoveNext
i = i + 1
Loop
rsta.Close
Set rsta = Nothing
GetAnlagen = s
End Function
Alles was nun noch bleibt, ist das Zuweisen der obigen Funktion als
Steuerelementinhalt
eines Textfeldes:
=GetAnlagen()
Die folgende Abbildung zeigt das Endergebnis:
Abbildung 4.15 Druckvorschau
Berichte nachträglich filtern
Nachdem Sie einen Bericht entworfen haben, können Sie die getroffene Auswahl der Datensätze ändern
bzw. weiter einschränken.
Variante 1 (IDE)
Mit der Version 2007 wurden auch erweiterte Filteroptionen in der Layout- bzw. der Berichtsansicht imple-
mentiert, die Sie unter anderem über die Kontextmenüs der einzelnen Datenfelder erreichen.
Wählen Sie beispielsweise den Filter »Ist gleich Getränke« wird dieser sofort auf die aktuelle Ansicht ange-
wendet. Auf diese Weise können Sie einzelnen Spalten neue Filter hinzufügen bzw. diese über den
entsprechenden Menüpunkt »Filter löschen aus [Spaltenname]« auch wieder deaktivieren.
215
Neue Features des Report-Objekts
BEISPIEL
Kapitel 4: Berichte
Abbildung 4.16 Berichtsansicht
Variante 2 (VBA)
Dass derartige Filter auch aus VBA-Sicht problemlos realisierbar sind, dürfte nach einem Blick in die Eigen-
schaften des Berichts schnell klar werden:
Abbildung 4.17 Berichtseigenschaften
Es wird lediglich der Filter-Eigenschaft ein entsprechender Ausdruck zugewiesen, was wir auch aus dem
Programm heraus realisieren können.
Filtern von Daten über eine Schaltfläche im Berichtskopf
Private Sub Befehl24_Click()
Me.Filter = "([Lookup_LieferantenNr].[Firma]=""Exotic Liquids"")"
Me.FilterOn = True
End Sub
Bemerkungen
■ Möchten Sie dieses Feature den Nutzern Ihrer Berichte vorenthalten, was bei vordefinierten Reports
durchaus sinnvoll ist
1
, können Sie die Berichtseigenschaft »Filter zulassen« auf False setzen.
■ Setzen Sie die Eigenschaft »Beim Laden filtern« auf False, andernfalls kann es schnell passieren, dass ein
bereits vergessener Filter noch aktiv ist.
1
Andernfalls müssen Sie schnell mit diversen Nachfragen nach dem Verbleib der Daten rechnen.
216
Get Microsoft Office Access 2007-Programmierung - Das Handbuch now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.