Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 4/2002.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Ihren XING-Kontakten zeigen

Diesen Beitrag Ihrem XING-Kontakten vorstellen

Diesen Beitrag auf Facebook teilen

Verwandte Beiträge:

Suchfunktionen von einfach bis komplex

Globale Suche

Alle verwandten Beiträge ansehen ...

Bisherige Kommentare:

Lösung per Assistent

Alle Kommentare ansehen oder Kommentar abgeben

Doppelte Datensätze aufspüren und löschen

Autor: Klaus Giesen, Wuppertal

Doppelte Datensätze können Plage und Fluch einer jeden Access-Datenbank sein. Abgesehen vom Speicherplatzbedarf und der damit verbundenen Performance-Beeinträchtigung treten noch andere und möglicherweise schwerwiegendere Probleme auf. Dazu zählen beispielsweise überflüssige Sendungen bei Mailingaktionen oder schlicht und einfach der schlechte Eindruck, der entsteht, wenn Kunden mehrfach die gleiche Post erhalten. Deshalb sollten in solchen Datenbankanwendungen passende Möglichkeiten vorhanden sein, diese doppelten Datensätze bequem aufzuspüren und zu entfernen.

Die Beispieldatenbank, die auf der beiliegenden CD-ROM für Access 97 Doppelt97.mdb und Access 2000 Doppelt2000.mdb (Rubrik Musterlösungen) vorhanden ist, ist eine einfache Kontaktverwaltung. Die Tabelle tblKontakte enthält ca. 140 Datensätze mit etlichen Duplikaten. (

Abb. 1: Das Dialogfenster Neue Abfrage

Doppelte Datensätze suchen

Access verfügt über einen eingebauten Assistenten zur Suche von doppelten Datensätzen. Im Folgenden finden Sie zunächst die Beschreibung der Anwendung des Assistenten und anschließend die theoretischen Grundlagen.

Der Abfrage-Assistent zur
Duplikatsuche

Die Suche nach Duplikaten in der Tabelle tblKontakte der Beispieldatenbank erfolgt bei diesem Beispiel über die Felder Nachname und Vorname.

Abb. 2: Auswahl der Tabelle

  • Klicken Sie im Datenbankfenster unter Abfragen auf die Schaltfläche Neu.
  • Wählen Sie im Dialogfenster Neue Abfrage den Abfrage-Assistenten zur Duplikatsuche aus (s. Abb. 1).
  • Im nächsten Schritt des Assistenten legen Sie die Tabelle oder Abfrage fest, in der nach Duplikaten gesucht werden soll (s. Abb. 2). Durch die Verwendung einer Abfrage können Sie auch in verknüpften Tabellen nach Duplikaten suchen.
  • Wählen Sie im nächsten Schritt die Suchfelder aus: Bei unserem Beispiel sind das die Felder Nachname und Vorname (s. Abb. 3).
  • Legen Sie anschließend noch fest, welche weiteren Felder im Abfrageergebnis ausgegeben werden sollen.
  • Abb. 3: Festlegen der Suchfelder

    Abb. 4: Resultat der Duplikatsuche

  • Speichern Sie die Suche unter einem passenden Namen, damit sie als Abfrage im Datenbankfenster für weitere Duplikatsuchen zur Verfügung steht.
  • Die Datenblattansicht der Abfrage zeigt anschließend diejenigen Datensätze an, die in den beiden festgelegten Suchfeldern Nachname und Vorname über identische Einträge oder Werte verfügen (s. Abb. 4).

    Damit ist der erste Teil der Aufgabe bereits gelöst: Die doppelten Datensätze in der Tabelle sind gefunden.

    Abb. 5: Abfrage zur Duplikatsuche in der Entwurfsansicht

    Vor den Überlegungen zum Löschen dieser Datensätze folgen nun zunächst einige Bemerkungen zur Funktionsweise des Assistenten zur Duplikatsuche.

    Funktionsweise des Assistenten zur Duplikatsuche

    Die Funktionsweise des Assistenten zu Duplikatsuche wird auf den ersten Blick in der Entwurfsansicht der Abfrage deutlich (s. Abb. 5).

    Der Anfang des SQL-Statements im Abfragekriterium

    In (SELECT [Nachname]...

    für das Feld Nachname weist auf die Verwendung einer Unterabfrage hin.

    Unterabfragen bestehen aus einer SQL SELECT-Anweisung innerhalb einer anderen Auswahl- oder Aktionsabfrage.

    Eine solche SQL-Anweisung kann entweder zur Definition eines neuen Feldes in der Zeile Feld oder zur Festlegung von Kriterien in der Zeile Kriterien des Abfrage-Entwurfsbereichs eingegeben werden.

    Die Unterabfrage des Assistenten zur Duplikatsuche ermittelt schließlich, welche Datensätze in den ausgewählten Suchfeldern mehr als einmal vorkommen.

    Abb. 6: Einstellung der Index-Eigenschaften

    In (SELECT [Nachname] FROM [tblKontakte_01] As Tmp 
    GROUP BY [Nachname],[Vorname] 
    HAVING Count(*)>1  And 
    [Vorname] = [tblKontakte_01].[Vorname])

    Quellcode 1

    Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

    Sie sind nicht angemeldet!
    Für den kompletten Artikel plus Beispieldatenbanken müssen Sie sich einloggen!
    Jetzt einloggen ...
     

    Sie haben keine Benutzerdaten? Na, dann aber schnell:

    Benutzerdaten erhalten Sie auf zwei Arten:

    1. Testen Sie das Online-Archiv von 'Access im Unternehmen' für eine Woche. Sie müssen Sie lediglich für den 'Access im Unternehmen'-Newsletter anmelden.
    Ja, ich will den einwöchigen Testzugang und den Newsletter!

    2. Greifen Sie ein ganzes Jahr auf das Online-Archiv zu und erhalten Sie zusätzlich alle zwei Monate das brandneue "Access im Unternehmen"-Magazin - für nur EUR 108,-* im Jahr!
    Ja, ich will Access im Unternehmen bestellen!

     

    * inkl. MwSt., zzgl. Versandkostenpauschale, EUR 140,- inkl. MwSt., zzgl. Versandkostenpauschale ab dem zweiten Jahr

    Verwandte Beiträge:

    Suchfunktionen von einfach bis komplex

    Globale Suche

    © 2003-2010 André Minhorst Alle Rechte vorbehalten.