Selektionen speichern

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.

Entwurf des Unterformulars

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.

Einfügen des Unterformulars in das Hauptformular

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…

Einstellen von Filter- und Sortierkriterien

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

Tabelle zum Speichern der Sortier- und Filterausdrücke

Nun benötigen wir einen Ort, um den aktuell eingestellten Filter- und Sortierausdruck zu speichern. Unter Access bietet sich dazu eine Tabelle an. Bevor wir diese gestalten, klären wir noch, welche Daten wir darin speichern wollen.

Neben jeweils einem Feld für den Filterausdruck und den Sortierausdruck benötigen wir auch noch ein Feld, mit dem wir eine Bezeichnung für diese Konfiguration festlegen. So kann der Benutzer diese später wiederherstellen.

Wenn wir noch weiterdenken, könnten wir auch noch ein Feld festlegen, in dem wir die aktuelle Datensatzquelle speichern. So könnten wir die Tabelle und den geplanten Mechanismus nicht nur in einem Formular einsetzen, sondern gleich in mehreren. Also entwerfen wir die Tabelle mit den folgenden Feldern:

  • KonfigurationID: Primärschlüsselfeld der Tabelle
  • Bezeichnung: Eindeutige Bezeichnung der Konfiguration
  • Filter: Filterausdruck
  • Sortierung: Sortierausdruck
  • TabelleAbfrage: Name der Tabelle oder Abfrage beziehungsweise SQL-Ausdruck

Die Tabelle sieht in der Entwurfsansicht wie in Bild 4 aus. Hier erkennen Sie auch, dass wir über die Eigenschaft Indiziert mit dem Wert Ja (Ohne Duplikate) einen eindeutigen Index für das Feld Bezeichnung festgelegt haben.

Entwurf der Tabelle tblSelektionskonfigurationen

Bild 4: Entwurf der Tabelle tblSelektionskonfigurationen

Filter- und Sortierausdrücke speichern

Das Speichern der Filter- und Sortierausdrücke in der Tabelle tblSelektionskonfigurationen erfolgt mit der Prozedur aus Listing 1, die durch die Schaltfläche cmdSelektionSpeichern ausgelöst wird.

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

den kompletten Artikel im PDF-Format mit Beispieldatenbank

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar