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.