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.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

Bitte teilen Sie uns Ihre Anrede, Ihren Namen und Ihre E-Mail-Adresse mit:

Anrede:
Vorname:
Nachname:
E-Mail:

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 4/2018.

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

Duplikate aus Textdateien entfernen

Nehmen wir an, Sie erhalten zwei Textdateien mit E-Mail-Adressen, die teilweise gleich sind. Manche E-Mail-Adressen kommen aber nur in der ersten Textdatei vor und andere nur in der zweiten. Wir benötigen aber eine Liste, die alle E-Mail-Adressen enthält, die in mindestens einer der beiden Listen vorkommen. Bei einer kurzen Liste würde man die beiden wahrscheinlich nebeneinanderlegen und abgleichen, aber ab einer gewissen Anzahl wird es unübersichtlich und somit fehleranfällig. Also bemühen wir einfach unsere Lieblingsanwendung – Microsoft Access!

Listen nach Access

Die beiden Textdateien enthalten in unserem Beispielfall jeweils eine Liste von E-Mail-Adressen, Anreden und einer Statusinformation – alles für die spätere Nutzung in einem Newsletter (siehe Bild 1). Um aus den beiden Listen eine Liste mit allen vorkommenden E-Mail-Adressen zu machen, müssen wir diese zunächst in Access verfügbar machen. Dann bauen wir eine Abfrage, welche alle E-Mail-Adressen der beiden Listen so zusammenführt, dass jede nur einmal auftaucht. Diese können wir dann als neue Textdatei exportieren.

Zwei zusammenführende Textdateien

Bild 1: Zwei zusammenführende Textdateien

Schritt für Schritt

Ob wir die Listen einmalig nach Access importieren oder diese als verknüpfte Tabellen verfügbar machen, hängt jeweils vom Anwendungsfall ab. Wenn es öfter vorkommt, dass Sie solche Listen zusammenführen müssen, können Sie eine Verknüpfung herstellen und dann jeweils die Dateien austauschen. Wir wollen an dieser Stelle allerdings aus Performancegründen einen Import vornehmen, denn wenn die Daten sich in einer Access-Tabelle innerhalb der Datenbank befinden, können wir besser damit arbeiten, als wenn wir über eine Verknüpfungstabelle auf eine externe Textdatei zugreifen.

Also rufen wir zunächst den Ribbon-Befehl Externe Daten|Importieren und Verknüpfen|Neue Datenquelle|Aus Datei|Textdatei auf (siehe Bild 2). Im ersten Schritt des nun erscheinenden Assistenten wählen Sie die zu importierende Datei aus und behalten die Option Importieren Sie die Quelldaten in eine neue Tabelle in der aktuellen Datenbank bei. Danach folgt der Textimport-Assistent. Hier gehen Sie gleich weiter zur zweiten Seite des Assistenten und aktivieren dort die Option Erste Zeile enthält Feldnamen (siehe Bild 3). Auf der dritten Seite gibt es nichts zu tun, auf der vierten behalten Sie die Option Primärschlüssel soll von Access hinzugefügt werden bei. Auf der letzten Seite legen Sie noch den Namen der Tabelle fest, unter der die importierten Daten gespeichert werden sollen. Wir verwenden den Namen tblEMail1.

Start des Imports einer Textdatei

Bild 2: Start des Imports einer Textdatei

Einstellung der Option Erste Zeile enthält Feldnamen

Bild 3: Einstellung der Option Erste Zeile enthält Feldnamen

Nach dem Import fragt der Assistent im letzten Schritt, ob die Importschritte gespeichert werden sollen. Dies wollen wir in diesem Fall einmal tun, da wir ja gegebenenfalls noch öfter Daten auf die gleiche Art importieren wollen (siehe Bild 4). Auf die gleiche Art und Weise importieren wir nun auch die zweite Textdatei, diesmal allerdings in die Zieltabelle tblEMails2. Auch diesen Import können wir speichern.

Speichern der Importschritte

Bild 4: Speichern der Importschritte

Abfrage zum Zusammenführen der Datensätze

Nun kümmern wir uns um die Abfrage, welche die Datensätze zusammenführen soll, ohne Duplikate zu liefern. Der neuen Abfrage namens qryEMailAdressenZusammenfuehren fügen wir zunächst die beiden Tabellen tblEMails1 und tblEMails2 als Datenherkunft hinzu – allerdings nicht auf herkömmliche Weise über die Entwurfsansicht, sondern über die SQL-Ansicht. Der Grund ist, dass wir eine UNION-Abfrage nutzen wollen, um die Datensätze der beiden Tabellen zusammenzuführen.

Dazu geben Sie dann den folgenden Text ein:

SELECT EMail, MailAnrede, Status FROM tblEMails1
UNION
SELECT EMail, MailAnrede, Status FROM tblEMails2

Die erste Beispieltabelle hat 674 Datensätze, die zweite hat 672. Die erste Tabelle enthält ein paar Datensätze, die nicht in der zweiten Tabelle vorkommen und umgekehrt. Das Ergebnis der UNION-Abfrage liefert 675 Datensätze. Das scheinen zu wenige Datensätze zu sein: Es würde ja bedeuten, dass die zweite Tabelle nur einen Datensatz enthält, der nicht in der ersten Tabelle vorkommt, und das ist nicht der Fall – davon haben wir uns zuvor durch Überfliegen der beiden Tabellen überzeugt.

Also prüfen wir genau, wie viele Datensätze in beiden Tabellen vorkommen – und verschaffen uns so eine kleine VBA-Fingerübung. Hier gehen wir von der Anzahl der Datensätze in der ersten Tabelle aus, die wir mit der DCount-Funktion ermitteln:

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.

Sind Sie Abonnent?Jetzt einloggen ...
 

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

Bitte teilen Sie uns Ihre Anrede, Ihren Namen und Ihre E-Mail-Adresse mit:

Anrede:
Vorname:
Nachname:
E-Mail:

© 2003-2018 André Minhorst Alle Rechte vorbehalten.