|
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:
- 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.
- Klicken Sie noch einmal mit der rechten Maustaste in das
Datenbank-Fenster, und wählen Sie das Menü Einfügen
an.
- Geben Sie im nachfolgenden Dialogfeld einen beliebigen
Tabellennamen ein, aktivieren Sie die Option Nur
Struktur, und bestätigen Sie mit Ok.
- Ö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.
- 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.
- Sichern Sie den überarbeiteten Tabellenentwurf, und verlasen
Sie ihn. Erstellen Sie nun eine neue Abfrage auf Basis der
Tabelle mit den doppelten Datensätzen.
- 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.
- Klicken Sie im Entwurfsbereich zweimal auf das "*",
um alle Felder der Ausgangstabelle zu übernehmen, und starten
Sie dann die Abfrage.
- 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:
- 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.
- Erstellen Sie eine neue Abfrage, der Sie die beiden Tabellen
"Adressen1" und "Adressen2" hinzufügen.
- 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".
- Wählen Sie das Menü Abfrage-Löschabfrage
an.
- Ziehen Sie mit der Maus die Felder "Firma" und
"Kontaktperson" aus "Adressen1" in die
ersten zwei Spalten der Abfragetabelle.
- Ziehen Sie das Sternchen ("*") aus
"Adressen2" in die dritte Spalte der Abfragetabelle.
- Starten Sie die Abfrage mit einem Mausklick auf das
Ausführen-Symbol.
- 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.
- Schliessen Sie die Abfrage, wechseln Sie in
"Adressen2", und übertragen Sie alle übrig
gebliebenen Datensätze nach "Adressen1".
|