Mit den Möglichkeiten der Datenblattansicht können Sie bereits umfassende Filter einsetzen und Sortierungen anwenden. Dazu brauchen Sie nur die Steuerelemente zu nutzen, die bei einem Mausklick auf die Schaltfläche mit dem Pfeil nach unten im Spaltenkopf auftauchen. Aber was, wenn Sie immer wieder die gleichen Selektionen benötigen Sollen Sie dann etwa immer wieder manuell die gleichen Einstellungen vornehmen Nein, das wäre nicht die Idee von Access im Unternehmen. Wir zeigen Ihnen im vorliegenden Beitrag, wie Sie die Filter- und Sortierkriterien in der Datenblattansichten speichern und einfach wiederherstellen können!
Beispieldatenbank zum Speichern von Selektionen
Ausgangssituation ist ein Hauptformular, das in einem Unterformular die Daten einer Tabelle oder Abfrage in der Datenblattansicht anzeigt. Um dies zu reproduzieren, legen Sie als Erstes ein neues, leeres Formular an und speichern es beispielsweise unter dem Namen frmSelektionenSpeichern. Lassen Sie das Formular gleich in der Entwurfsansicht geöffnet und stellen Sie die Eigenschaften Datensatzmarkierer, Navigationssteuerelemente, Bildlaufleisten und Trennlinien auf den Wert Nein und Automatisch zentrieren auf Ja ein.
Dann erstellen Sie ein weiteres neues Formular und speichern dieses unter dem Namen sfmSelektionenSpeichern. Dieses Formular soll die Daten der gewünschten Tabelle oder Abfrage in der Datenblattansicht anzeigen. Dazu tragen Sie den Namen der Tabelle oder Abfrage als Wert der Eigenschaft Datensatzquelle ein. Wir wollen die Tabelle tblArtikel unserer altbekannten Beispieldatenbank Südsturm verwenden. Anschließend ziehen Sie alle Felder der Datenquelle aus der Feldliste in den Detailbereich der Entwurfsansicht des Formulars. Eine weitere wichtige Einstellung ist die der Eigenschaft Standardansicht auf den Wert Datenblatt. Der Entwurf des Unterformulars sieht anschließend wie in Bild 1 aus. Das Unterformular können Sie nun speichern und schließen.
Bild 1: Entwurf des Unterformulars
Unterformular einfügen
Nun ziehen Sie das Unterformular sfmSelektionenSpeichern aus dem Navigationsbereich in den Detailbereich des Entwurfs des Hauptformulars und richten es etwa wie in Bild 2 aus.
Bild 2: Einfügen des Unterformulars in das Hauptformular
Genau wie dort dargestellt legen Sie für die beiden Eigenschaften Horizontaler Anker und Vertikaler Anker die Eigenschaft Beide fest.
Selektionen und Sortierungen vornehmen
Wenn Sie nun das Hauptformular in der Formularansicht anzeigen, können Sie mit den Elementen, die nach einem Klick auf die Schaltfläche mit dem nach unten zeigenden Dreieck erscheinen, verschiedene Selektionen und Sortierungen definieren.
Im Beispiel aus Bild 3 zeigen wir, wie Sie einen Textfilter anlegen. Dazu wählen Sie den Eintrag Textfilter des Popups mit den verschiedenen Befehlen aus und dann den gewünschten Vergleichsoperator wie beispielsweise Gleich… oder Enthält…
Bild 3: Einstellen von Filter- und Sortierkriterien
Filter- und Sortierausdruck ermitteln
Anschließend zeigt das Unterformular nur noch die den Kriterien entsprechenden Einträge an. Wenn Sie aber nun die gewünschte Sortierung hergestellt haben, wie können Sie diese dann speichern und wieder abrufen
Um diese zu speichern, müssen wir erst einmal herausfinden, wie wir die Sortierung und den Filter auslesen können. Dazu stellt ein Formular die beiden Eigenschaften OrderBy und Filter zur Verfügung. Zum Ausprobieren können wir den aktuellen Wert der Eigenschaft Filter über den Direktbereich erfragen. Dazu geben Sie dort eine Anweisung wie die folgende ein:
Forms!frmSelektionenSpeichern!sfmSelektionenSpeichern. Form.Filter
Im vorliegenden Beispiel haben wir das Unterformular nach allen Datensätzen gefiltert, deren Feld Artikelname mit C beginnt. Deshalb liefert die Anweisung im Direktbereich die folgende Ausgabe:
([tblArtikel].[Artikelname] Like "c*")
Wenn Sie noch eine weitere Selektion beispielsweise nach der Kategorie Getränke vornehmen, erhalten Sie den folgenden, schon etwas komplizierteren Filterausdruck für das Datenblatt:
((([tblArtikel].[Artikelname] Like "c*"))) AND ([Lookup_KategorieID].[Kategoriename]="Getränke")
Auch Sortierungen können Sie so ermitteln. Wenn Sie gleichzeitig über die Benutzeroberfläche eine Sortierung nach dem Feld Artikelname definieren, finden wir die Sortierung wie folgt heraus:
Forms!frmSelektionenSpeichern!sfmSelektionenSpeichern.Form.OrderBy
Das Ergebnis lautet dann:
[tblArtikel].[Artikelname]
Eine absteigende Sortierung nach dem gleichen Feld liefert folgenden Sortierausdruck:
[tblArtikel].[Artikelname] DESC