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
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
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
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
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
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
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

