Datensätze markieren mit bedingter Formatierung

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Wenn Sie gern mit der Datenblattansicht arbeiten, ist Ihnen vermutlich schon aufgefallen, dass es keine Möglichkeit, mehrere Datensätze gleichzeitig zu markieren – außer, die Datensätze hängen zusammen. Mit der bedingten Formatierung und ein paar kleinen Tricks gelingt es uns allerdings doch, Datensätze etwa per Doppelklick zu selektieren und wieder abzuwählen. Dieser Artikel zeigt, wie es funktioniert.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1804_DatensaetzeMarkierenMitBedingterFormatierung.accdb.

Vorbereitung

Als Beispiel wollen wir ein Unterformular nutzen, dass die Daten der Tabelle tblKunden in der Datenblattansicht anzeigt. Im Hauptformular wollen wir dann Schaltflächen unterbringen, mit denen wir entweder alle Einträge des Unterformulars selektieren können oder die Selektierung komplett aufheben.

Dazu legen wir zunächst das Unterformular namens sfmKunden an. Dieses statten wir über die Eigenschaft Datenherkunft mit der Tabelle tblKunden als Datenquelle aus. Ziehen Sie dann alle Felder der Datenherkunft aus der Feldliste in den Detailbereich des Formularentwurfs. Außerdem stellen wir die Eigenschaft Standardansicht auf Datenblatt ein (siehe Bild 1). Schließen Sie das Formular dann, damit wir es im nächsten Schritt als Unterformular zum Hauptformular hinzufügen können.

Entwurf des Unterformulars

Bild 1: Entwurf des Unterformulars

Anschließend legen wir das Hauptformular namens frmKunden an und öffnen dieses in der Entwurfsansicht. Diesem fügen wir das Formular sfmKunden als Unterformular hinzu, indem wir es aus dem Navigationsbereich in den Detailbereich des Formularentwurfs ziehen. Außerdem stellen wir für das Hauptformular die Eigenschaften Datensatzmarkierer, Navigationsschaltflächen, Trennlinien und Bildlaufleisten auf den Wert Nein und Automatisch zentrieren auf Ja ein. Damit die Größe des Unterformulars beim ändern der Größe des Hauptformulars automatisch angepasst wird, legen wir außerdem für die beiden Eigenschaften Horizontaler Anker und Vertikaler Anker noch den Wert Beide fest (siehe Bild 2).

Entwurf des Hauptformulars

Bild 2: Entwurf des Hauptformulars

Feld für das temporäre Speichern als markierter Datensatz hinzufügen

Nun haben wir zwar schon das Formular aufgebaut, aber wenn wir eine bedingte Formatierung definieren wollen, benötigen wir dazu bestimmte Bedingungen, die erfüllt sein müssen. Wie aber wollen wir eine Bedingung definieren, die besagt, dass ein Datensatz gerade markiert ist oder nicht

Dazu benötigen wir ein eigenes Feld, dass wir entweder direkt der Tabelle hinzufügen oder einer weiteren Tabelle, die wir dann per 1:1-Beziehung mit der eigentlichen Tabelle verknüpfen. Da es sein kann, dass Sie diese Technik an Tabellen anwenden wollen, die aus einer Datenbank stammen, deren Entwurf Sie nicht ändern können, wählen wir die zweite Variante. Also legen wir zunächst eine neue Tabelle namens tblKundenMarkierungen an.

Diese erhält drei Felder. Das erste ist das Primärschlüsselfeld dieser Tabelle, das zweite ein Fremdschlüsselfeld, welches auf den Primärschlüssel des Feldes tblKunden verweist und das dritte das Ja/Nein-Feld, mit dem wir festlegen, ob der mit dem diesem Datensatz verknüpfte Datensatz der Tabelle tblKunden als ausgewählt gekennzeichnet werden soll.

Wichtig für die Herstellung einer 1:1-Beziehung zwischen den Tabellen tblKunden und tblKundenBeziehungen ist, dass beide an der Beziehung beteiligten Felder einen eindeutigen Index haben. Beim Primärschlüsselfeld KundeID der Tabelle tblKunden ist das per Definitionem der Fall, beim Fremdschlüsselfeld KundeID der Tabelle tblKundenMarkierungen müssen wir nachhelfen. Dazu stellen wir die Eigenschaft Indiziert für dieses Feld im Entwurf der Tabelle auf den Wert Ja (Ohne Duplikate) ein (siehe Bild 3).

Entwurf der Zusatztabelle tblKundenMarkierungen

Bild 3: Entwurf der Zusatztabelle tblKundenMarkierungen

Beziehung hinzufügen

Danach wollen wir die Beziehung zwischen den beiden Tabellen tblKunden und tblKundenMarkierungen hinzufügen. Dazu öffnen wir über den Ribbonbefehl Datenbanktools|Beziehungen|Beziehungen das Beziehungen-Fenster. Diesem fügen wir die Tabellen tblKunden und tblKundenMarkierungen hinzu, sofern diese noch nicht sichtbar sind.

Dann erstellen wir die Beziehung zwischen den beiden Tabellen. Dabei ist es wichtig, dass Sie vom Feld KundeID der Tabelle tblKunden ausgehend auf das gleichnamige Feld der Tabelle tblKundenMarkierungen ziehen – andersherum erhalten Sie beim Speichern der Beziehung eine Fehlermeldung, wenn Sie für die Beziehung referenzielle Integrität festgelegt haben.

Der Grund ist einfach: In diesem Fall müsste es für jeden Eintrag im Feld KundeID der Tabelle tblKunden nämlich einen passenden Eintrag im entsprechenden Feld der Tabelle tblKundenMarkierungen geben. Und das ist gerade dann nicht der Fall, wenn die Tabelle soeben erst angelegt wurde.

Also ziehen wir die Beziehung andersherum auf. Im nun erscheinenden Dialog Beziehungen bearbeiten erscheint dann im unteren Bereich auch gleich 1:1 als Beziehungstyp.

Hier aktivieren Sie noch die Option Mit referenzieller Integrität. Sie sollten auch noch die Option Löschweitergabe an verwandte Datensätze aktivieren, damit die Datensätze der Tabelle tblKundenMarkierungen, die mit einem zu löschenden Datensatz der Tabelle tblKunden in Beziehung stehen, auch direkt mit gelöscht werden (siehe Bild 4).

Beziehung zwischen den Tabellen tblKunden und tblKundenMarkierungen

Bild 4: Beziehung zwischen den Tabellen tblKunden und tblKundenMarkierungen

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

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar