Tipps "n" Tricks
Anwender-Software - Access

Last Update: 24. Dezember 2001/Webmaster

Doppelte Datensätze löschen
Thema: Access 97/2000
  Variante 1

Doppelte Datensätze sind ein typisches Problem in vielen Datenbanken. In diesem zweiteiligen Tip möchten wir Ihnen einige Hinweise und konkrete Anleitungen geben, um dieses Problem möglichst effizient zu lösen. Nehmen wir zunächst einmal an, Sie arbeiten mit einer Tabelle, in der sich doppelte Datensätze befinden. Bisher war vielleicht der Primärschlüssel nicht korrekt gesetzt oder Sie haben die Daten aus einem anderen Programm übernommen. Mit den folgenden Schritten kommen Sie zu einer bereinigten Tabelle:

  1. Schliessen Sie die Tabelle mit den doppelten Datensätzen, klicken Sie sie im Datenbankfenster mit der rechten Maustaste an, und rufen Sie das Kontextmenü Kopieren auf.
  2. Klicken Sie noch einmal mit der rechten Maustaste in das Datenbank-Fenster, und wählen Sie das Menü Einfügen an.
  3. Geben Sie im nachfolgenden Dialogfeld einen beliebigen Tabellennamen ein, aktivieren Sie die Option Nur Struktur, und bestätigen Sie mit Ok.
  4. Öffnen Sie die neue Tabelle im Entwurfsmodus, und markieren Sie bei gedrückter Ctrl-Taste nacheinander die Felder, an deren Inhalten sich doppelte Datensätze eindeutig identifizieren lassen. In einer Adressdatenbank reicht es beispielsweise nicht aus, nur das Feld "Name" auf doppelte Einträge zu prüfen. Sie sollten möglichst eine Kombination aus mehreren Feldern wie "Name", "Strasse" und "Plz" wählen, um eine eindeutige Identifikation zu ermöglichen.
  5. Klicken Sie auf das Schlüssel-Symbol, um die markierten Felder als kombinierten Primärschlüssel festzulegen. Das Besondere dabei: Access akzeptiert jetzt zwar doppelte Einträge in den einzelnen Feldern, aber die Kombination der Felder muss immer eindeutig sein.
  6. Sichern Sie den überarbeiteten Tabellenentwurf, und verlasen Sie ihn. Erstellen Sie nun eine neue Abfrage auf Basis der Tabelle mit den doppelten Datensätzen.
  7. Wählen Sie das Menü Abfrage-Anfügeabfrage an, und legen Sie im nachfolgenden Dialogfenster die neu erstellte Tabelle als Ziel für die Anfügeabfrage fest.
  8. Klicken Sie im Entwurfsbereich zweimal auf das "*", um alle Felder der Ausgangstabelle zu übernehmen, und starten Sie dann die Abfrage.
  9. Bestätigen Sie die Meldungen über Datensätze, die aufgrund doppelter Inhalte in den Primärschlüsseln nicht eingefügt werden konnten. Am Ende verfügen Sie über eine exakte Kopie der Ausgangstabelle ohne die doppelten Datensätze. Sie können das Original daraufhin löschen und die Kopie umbenennen.

Mit diesem Tipp kommen Sie schon recht weit, aber es bleiben natürlich noch viele Fälle unberücksichtigt. So können Sie die Technik grundsätzlich auch dann einsetzen, wenn Doppel aus zwei Tabellen zu entfernen sind, indem Sie eine Tabelle als Master verwenden, in dem die Primärschlüssel wie oben beschrieben gesetzt werden. Allerdings ist genau das aufgrund der bereits vorhandenen Datensätze häufig nicht möglich, so dass wir in der nächsten Ausgabe noch eine alternative Technik vorstellen.

Variante 2

In der Variante 1 haben wir gezeigt, wie Sie doppelten Datensätzen innerhalb einer Tabelle am schnellsten auf die Spur kommen. Wenn Sie zwei Tabellen ohne Doppel zusammenführen wollen, wenden Sie die folgende Technik an: Mit einer Löschabfrage entfernen Sie aus einer der Tabellen alle Datensätze die bereits in der anderen Tabelle vorhanden sind. Übrig bleiben die Unikate, die Sie dann mit einem ganz normalen Kopiervorgang in die andere Tabelle übernehmen. Das Ergebnis ist eine Kundendatenbank ohne doppelte Datensätze. Ausgehend von einer Beispiel-Datenbank mit zwei Adresstabellen "Adressen1" und "Adressen2", sieht die Vorgehensweise folgendermassen aus:

  1. Entscheiden Sie, welche Tabelle sozusagen als "Master" verwendet werden soll. Alle Datensätze die im Master vorhanden sind, werden aus den übrigen Tabellen gelöscht. Die übriggebliebenen Datensätze kopieren Sie dann in das Master. In unserem Beispiel ist "Adressen1" das Master.
  2. Erstellen Sie eine neue Abfrage, der Sie die beiden Tabellen "Adressen1" und "Adressen2" hinzufügen.
  3. Standardmässig verbindet Access die beiden Tabellen mit dem ersten gemeinsamen Feld. Achten Sie darauf, dass es sich dabei um ein Feld handelt, das Sie auch zum Abgleich der Tabellen verwenden wollen. In unserem Beispiel soll ein doppelter Datensatz anhand der Felder "Firma" und "Kontaktperson" erkannt werden; Access verbindet die Tabellen aber auf Grundlage von "Kundencode". Entfernen Sie diese Verbindung und ersetzen Sie sie durch eine Verbindung auf Grundlage des Felds "Firma".
  4. Wählen Sie das Menü Abfrage-Löschabfrage an.
  5. Ziehen Sie mit der Maus die Felder "Firma" und "Kontaktperson" aus "Adressen1" in die ersten zwei Spalten der Abfragetabelle.
  6. Ziehen Sie das Sternchen ("*") aus "Adressen2" in die dritte Spalte der Abfragetabelle.
  7. Starten Sie die Abfrage mit einem Mausklick auf das Ausführen-Symbol.
  8. Nach wenigen Augenblicken zeigt Access eine Meldung mit der Anzahl der Datensätze an, die doppelt sind und gelöscht werden sollen. Bestätigen Sie mit Ok.
  9. Schliessen Sie die Abfrage, wechseln Sie in "Adressen2", und übertragen Sie alle übrig gebliebenen Datensätze nach "Adressen1".

 

Tipps "n" Tricks
Anwender-Software - Access