window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-TCJTE9L38H');

Individuelle Auswahl mit eigener Tabelle

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

In den beiden Artikeln Datensätze individuell auswählen (Ausgabe 10/2012) und Selektion im Datenblatt (aktuelle Ausgabe) nutzen wir ein zusätzliches Feld in der betroffenen Tabelle, um Datensätze individuell auswählen zu können. Die Methode ist sehr praktisch, kommt jedoch an ihre Grenzen, wenn Sie keinen Zugriff auf die betroffene Tabelle haben. Das kann passieren, wenn sich diese in einem Backend befindet, dessen Daten Sie nicht ändern können, weil Sie keinen Zugriff haben oder keine Berechtigung. Ein weiterer wichtiger Grund, die Selektionsdaten in einer eigenen Tabelle zu speichern, sind Mehrbenutzeranwendungen. Da bietet es sich an, die Daten bezüglich der Ansicht im Frontend zu speichern.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1703_IndividuelleAuswahl.accdb. Wir setzen auf der im Artikel Selektion im Datenblatt beschriebene Lösung auf. Dabei entfernen wir einfach das Feld Selektiert aus der Tabelle tblKunden und fügen dieses dann über eine zusätzliche Tabelle wieder hinzu. Die übrigen Schritte werden in diesem Artikel erläutert.

Tabelle hinzufügen

Wir gehen also nun davon aus, dass die Tabelle tblKunden sich in einer Backend-Datenbank befindet, deren Entwurf wir nicht ändern können. Daher entfernen wir das Feld Selektiert aus dieser Tabelle und speichern die Tabelle.

Die Tabelle, in der wir die Selektionsdaten speichern wollen, soll den Namen tblKundenSelektion erhalten und zwei Felder enthalten. Das erste heißt KundeID und wird als Zahlenfeld mit einem eindeutigen Index versehen. Das zweite Feld ist das Feld, das wir aus der ursprünglichen Tabelle entnommen haben – es heißt dementsprechend Selektiert (siehe Bild 1).

Die Tabelle mit dem Selektionsfeld

Bild 1: Die Tabelle mit dem Selektionsfeld

Damit wir das Feld Selektiert sauber mit der Tabelle tblKunden verbinden können, müssen wir eine 1:1-Beziehung zwischen den beiden Tabellen anlegen. Das bedeutet, dass es für jeden Datensatz der Tabelle tblKunden nur maximal einen Datensatz in der Tabelle tblKundenSelektion geben darf, dessen Wert im Feld KundeID mit dem Feld KundeID in tblKunden übereinstimmt.

Dazu stellen wir die Verbindung zwischen den beiden Tabellen her, und zwar im Beziehungen-Fenster von Access. Diesem fügen Sie die beiden Tabellen tblKunden und tblKundenSelektion hinzu. Anschließend ziehen Sie den Beziehungspfeil vom Feld KundeID der Tabelle tblKunden auf das gleichnamige Feld der Tabelle tblKundenSelektion und legen Sie für die Beziehung Referenzielle Integrität und Löschweitergabe fest (siehe Bild 2). Versuchen Sie dies andersherum, erhalten Sie beim Versuch, referenzielle Integrität festzulegen eine Fehlermeldung. Hier geht es um die Richtung, in der die Beziehung angelegt wird: Access prüft im letzteren Fall, der einen Fehler auslöst, ob die Tabelle tblKunden Datensätze mit Werten im Feld KundeID enthält, die nicht in der Tabelle tblKunden-Selektion enthalten sind. Und das ist zu diesem Zeitpunkt definitiv der Fall, da wir die Tabelle tblKundenSelektion ja soeben erst angelegt haben.

Herstellen der Beziehung zwischen den beiden Tabellen

Bild 2: Herstellen der Beziehung zwischen den beiden Tabellen

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