Duplikate finden per Abfrage

Wenn man lange genug mit einer Datenbank arbeitet, legt man früher oder später einen Datensatz mit redundanten Daten an. Ob es sich um einen Kunden handelt, der zum zweiten Mal in der Kunden-Tabelle erscheint oder um eine Kategorie in der Kategorientabelle – schützen können Sie sich davor nur durch das Festlegen entsprechender eindeutiger Indizes. Diese sorgen für die Meldung eines Fehlers, wenn jemand versucht, das oder die betroffenen Felder eines neuen Datensatzes mit bereits vorhandenen Daten zu füllen. Manchmal vergisst man das jedoch. Dann lautet die Aufgabe: Duplikate finden! Wie das gelingt, zeigt der vorliegende Artikel.

Weiterlesen

Löschweitergabe in der Praxis

Die Löschweitergabe ist eines der Features der referentiellen Integrität. Bei aktivierter referentieller Integrität bewirkt die Löschweitergabe immer etwas, unabhängig davon, ob Sie die Löschweitergabe aktiviert haben oder nicht. Wenn Sie diese aktiviert haben, löscht sie die mit dem zu löschenden Datensatz verknüpften Datensätze ebenfalls. Wenn Sie sie deaktiviert haben, sorgt sie dafür, dass bereits mit anderen Datensätzen verknüpfte Datensätze nicht mehr gelöscht werden können. In diesem Artikel schauen wir uns das im Detail an und erläutern anhand von Beispielen, wann Sie die Löschweitergabe aktivieren sollten und wann nicht.

Weiterlesen

Inkonsistente Duplikate finden per Abfrage

Wenn Sie ein Datenmodell antreffen, das nicht vollständig normalisiert ist, kann es sein, dass dieses aufgrund seiner Beschaffenheit das Speichern von Duplikaten erlaubt. Das ist insbesondere interessant, wenn diese Daten in Tabellen vorliegen, die nicht der dritten Normalform entsprechen. Das bedeutet beispielsweise, dass Sie zu einer Bestellung in einer Bestellungen-Tabelle auch den Kunden inklusive Kundennummer und weiteren Kundendaten angeben. Bevor Sie eine solche Bestellungen-Tabelle in eine Bestellungen- und eine Kundentabelle aufteilen, sollten Sie sicherstellen, dass es keine Inkonsistenzen in den vermutlich bereits vorhandenen Duplikaten gibt und diese gegebenenfalls korrigieren. Um inkonsistente Daten in dieser Form zu finden, verwenden wir am einfachsten eine Abfrage. Wie Sie diese formulieren, zeigt Ihnen dieser Artikel.

Weiterlesen

Reflexive Daten in Abfragen

Im Artikel “Reflexive Daten in Tabellen” haben wir gezeigt, wie Sie reflexiv verknüpfte Daten in einer oder mehreren Tabellen verwalten können. Um sinnvoll auf diese Daten zugreifen zu können, müssen Sie entsprechende Abfragen formulieren. Damit ermitteln Sie dann beispielsweise alle Elemente der obersten Hierarchie-Ebene oder auch alle Elemente, die zu einem übergeordneten Element gehören. Die für die beiden im oben genannten Artikel vorgestellten Datenmodelle für Daten in reflexiven Beziehungen benötigen unterschiedliche Abfragen, die wir in diesem Artikel vorstellen.

Weiterlesen

Laufende Summen in Abfragen

Immer wieder taucht die Frage auf, wie man in Access die Inhalte von Zahlenfelder mehrerer Datensätze aufsummiert. Unter Excel ist das einfach – dort trägt man einfach die Summe aus der Summe bis zur vorherigen Zeile plus dem Wert der aktuellen Zeile ein. ändert man Werte, ändern sich auch die Summen. Im Artikel “Laufende Summen in Tabellen” haben wir uns angesehen, wie dies mit einem zusätzlichen Feld in Tabelle gelingt. In diesem Artikel schauen wir uns an, wie dies unter Access unter Verwendung von Abfragen gelingt.

Weiterlesen

Unterabfragen als Feldinhalt

Dass gespeicherte Abfragen selbst wieder als Pseudotabellen in andere Abfragen integriert und dort mit anderen Tabellen verknüpft werden können, dürfte Ihnen bekannt sein. Weniger verbreitet jedoch sind jene Abfragen, die ungespeichert als SQL-Ausdruck zur Berechnung von Feldinhalten und Bedingungen dienen. Diese mit den Schlagwörtern Unterabfrage oder Subselect bezeichneten Ausdrücke sind Gegenstand dieses Beitrags.

Weiterlesen

Rekursive Tabellen

Ihr Kumpel, der Gemeinderat, kommt auf die geniale Idee, für alle Bewohner des Dorfes einen Stammbaum anzulegen, und betreut Sie als Programmierer mit der Aufgabe, diese in einer Datenbank anzulegen, um das anschließend zu Papier bringen zu können. Das kann kein so kompliziertes Unterfangen sein, denken Sie, und machen sich frohgemut an die Arbeit. Das Datenmodell ist der erste Schritt, der zu bewältigen ist…

Weiterlesen

VBA-Funktionen in Abfragen

Ob für die Berechnung von Feldern oder für Kriterien, um den Einsatz von VBA-Funktionen in Abfragen und SQL-Ausdrücken werden Sie häufig nicht herum kommen. Die Liste von originären Funktionen der Access-SQL-Engine ist ziemlich kurz, und für alle weitergehenden Rechenaufgaben verwendet Access nach Aussage von Microsoft den sogenannten VBA Expression Service. Betrachten wir in diesem Beitrag, wie beide zusammenspielen und auf was hier das Augenmerk liegen sollte.

Weiterlesen