![]() |
||
![]() |
Mit Access Daten-Duplikate aufspⁿrenIch lese Daten ⁿber einen Scanner ein und importiere die Informationen in eine Access-Datenbank. Nun m÷chte ich die importierten Daten mit den bereits in der Datenbank enthaltenen Daten vergleichen, um m÷g- liche Duplikate zu erkennen. Leider stimmen die Feldinhalte der importierten Daten nicht ganz mit den Feldern aus der Tabelle ⁿberein, etwa: äFritz Mⁿller Wei▀enbach 13ô und äFritz Mⁿllerô, äWei▀enbach 13ô. Wie kann ich trotzdem vergleichen? Duplikate stellen selbst Datenbank-Profis nicht selten vor Probleme. Am einfachsten sind Duplikate aufzuspⁿren, wenn die Felder fⁿr den Vergleich identische Inhalte aufweisen. Das k÷nnten Sie auch beim Scannen erreichen, indem Sie ⁿberflⁿssige Informationen fⁿr das Feld mit einem wei▀en Blatt Papier abdecken oder spΣter beim Proze▀ der Schrifterkennung (OCR) unberⁿcksichtigt lassen. So lie▀e sich auch beim Scannen nach und nach die gleiche Struktur der Daten wie in der vorhandenen Datenbank nachbilden. Aber auch bei dem von Ihnen geschilderten Vorgehen k÷nnen Sie von Access eine Liste der vermeintlich gleichen DatensΣtze erhalten, die Sie dann ⁿberprⁿfen sollten. Um nach dem Import durch Access die Daten auf m÷gliche Duplikate untersuchen zu lassen, verwenden Sie eine Abfrage. Diese Abfrage vergleicht die importierten Daten mit den bereits existierenden und schreibt im Falle einer ▄berein- stimmung eine Kopie beider DatensΣtze in eine Zieltabelle. Wenn Sie beispielsweise die importierten Daten in der Tabelle Importiertes in einem Feld namens Sammelsurium halten, das die Struktur äName Stra▀e Wohnortô aufweist, wΣhrend in der vorhandenen Access-Datenbank Name diese Daten auf mehrere Felder verteilt sind, k÷nnen Sie die folgende Abfrage verwenden: SELECT Importiertes.Sammelsurium, Name.Name, Name.Schlⁿssel INTO Zieltabelle FROM Importiertes, Name WHERE (((Trim ([Name]))=Left ( Trim ([Sammelsurium]),Len (Trim ([Name])))));Der Select-Teil benennt die Felder, die in die Zieltabelle abzubilden sind, und der From-Teil benennt die Quelltabellen. Der Vergleich geschieht dann im Where-Teil der Abfrage. Die Where-Klausel vergleicht den Namen eines bereits existierenden Datensatzes Name mit dem linken Rand des importierten Datensatzes Sammelsurium. Die LΣnge des zu vergleichenden Namens Len(Name) bestimmt dabei die Breite dieses linken Randes beim Vergleich. Die Funktion Trim() erh÷ht die Genauigkeit des Vergleichs, indem sie automatisch alle Leerzeichen entfernt. HΣufig erkennt die OCR-Software nach dem Scannen mehrere Leerzeichen zwischen zwei W÷rtern. Das liegt meist am gedruckten Blocksatz, der die einzelnen W÷rter auseinanderzieht. Auf diese Weise werden Sie zwar schon viele potentiell doppelte EintrΣge finden, aber mit Sicherheit nicht alle. Die FΣlle von Schreibfehlern wie bei äMeyerô und äMayerô oder fehlender Einheitlichkeit wie bei äErnst-Uwe Winterô und äErnst Uwe Winterô oder äErnst U. Winterô entgehen Ihnen immer noch. Um auch diese Duplikate zu finden, ben÷tigen Sie eine detaillierte Kenntnis Ihres Datenbestands und ein darauf abgestimmtes, datenspezifisches Vorgehen. |
![]() |