Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Doppelte Datensätze in einer Tabelle





Frage

Hallo Spezi's brauch mal wieder ne Anregung ! Ich habe in einer Tab. Importbedingt doppelte Datensätze, diese sind doppelt aber unterscheiden sich duch die Schreibweise (Anzahl Leerzeichen, unterschiedl. Umlaute usw.). ich kann auch einen Filter definieren um diese zu finden, allerdings muß ich in beiden Datensätze (können sogar 4-10 Sätze sein) eine Fehlerstatus setzen, um manuell korrigieren zu können. Wie mach ich das denn ? Danke für Eure Hilfe. Mike

Antwort 1 von .struppi

Hallo,
Ein Beispiel für doppelte Datensätze wäre nicht schlecht. Was bedeutet Fehlerstatus setzen ?
gruß struppi

Antwort 2 von Nessus

Durch eine Stringbehandlung in Verbindung mit dem entsprechenden Index (no dupl.) sollte das doch kein Problem sein. Einfach in einer Abfrage mit etws VB-Code eine neue Tabelle erstellen. Die Hilfe gibt darüber ausreichend Antwort.

HTH

Chris

Antwort 3 von Mike32m

Doppelte Adressen, die z.Bsp. sich in der schreibweise unterscheiden: wie Str. -> Strasse, unterschiedliche Leerzeichen usw.
Eine neue Tab. erzeugen geht somit ja auch nicht sooo einfach.
Mal schauen wie ich das gebacken bekomme.
Mike

Antwort 4 von pelle

Hallo Mike,

leide mit Dir!

Kenne das Problem!

Habe bisher nur eine Lösung gefunden:
(Lösung na ja)
1) Gruppierungsabfrage auf Problemfeld
2) je nach Menge Aktualisierungsabfrage / manuell berichtigen
3) Bitte an User um Beachtung von ...(ohne Erfolg)

i like it

gruss
pelle

Antwort 5 von Teddy7

Hallo Mike !
Also zunächst würde ich an die Tabelle ein zusätzliches Feld anhängen.
Dieses Feld würde ich füllen mit dem "bereinigten" Schlüsselbegriff (also z.b. name + Ort + Strasse) - halt so, daß Du an einem Feld feststellen kannst, ob es den Satz schon mal gibt.
Danach kannst Du mit einem Sonderlauf über die Tabelle rutschen und alle doppelten rausschmeißen.
Ich habe für solche Zwecke immer ein zusätzliches Formular "Sonderlauf" mit Befehlsbutton, an den ich den Code hängen kann. Der Aufbau des zusätzlichen Feldes könnte so aussehen:
-----------
Dim ttab1 As DAO.Recordset

Set ttab1 = CurrentDb.OpenRecordset("Select * from tblAdressen", dbOpenDynaset)
ttab1.MoveLast
Do Until ttab1.EOF
ttab1.Edit
ttab1!Verg = ttab1!Name & ttab1!Ort & ttab1!Str
ttab1.Update
ttab1.MoveNext
Loop
ttab1.Close
Set ttab1 = Nothing
----------------
Gruß
Teddy

Antwort 6 von .struppi

Hallo,
Meine Idee wäre zunächst mal die Zeichen zu bereinigen. Das heißt ZB Umlaute suchen und alle ersetzen. Danach würde ich per Abfrage ein Spalte erzeugen in der so eine Art Suchbegriff automatisch erzeugt wird. ZB aus den ersten beiden Buchstaben jedes Feldes. Dabei alle Zeichen auf einheitlich Groß oder Kleinschreibweise setzen.Dann gruppieren und nur die Datensätze anzeigen in denen der Suchbegriff mehr als 2 mal erscheint.
Bis dahin geht alles automatisch.
Nun könnte man noch ein JA/Nein Feld erzeugen lassen. Die Datensätze die OK sind einfach im Ja/Nein auf true setzen (Manuell). Danach wieder eine automatische Vereinheitlichung starten. Wegen der vorherigen Selection über das JA/Nein Feld kann diese jetzt unterscheiden welche DS gleichlautend gemacht werden müssen.
Ratsam wäre natürlich eine Suchbegriff vom User ständig mit ausfüllen zu lassen. Bei diesem Begriff kann eine Prüfung und strenge Vorgabemasken zur Disziplin zwingen und die spätere automatische Erzeugung des Suchbegriffes erübrigen. Was zu einer wesentlich besseren Findung der doppelten DS führen sollte.
Das wäre so meine erste Eingebung zu dem Problem..
Gruß struppi