Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Duplikate in Access löschen (Spende)
#1
Star 
Hallo zusammen,

ich muss unbedingt in Access das Löschen von Duplikaten hinbekommen. (Die Daten vorher bereinigen kann ich nicht und mein Chef mach mir gerade Druck das irgendwie hinzubekommen). Ich habe versucht, dass was man so findet an Code zu adaptieren, leider ohne erfolg.

Sowie ich es verstanden habe muss man wie folgt vorgehen:

1. Doppelte Werte filtern mit group by und den Kriterien
2. extra Abfrage/Tabelle dafür ausgeben lassen
3. Orginal Tabelle mit temporärer Tabelle abgleichen und doppelte Werte löschen

Im Prinzip können nur doppelte Werte(mit unterschiedlicher ID) vorkommen, wenn Auftragsnummer, Zeitstempel und Aktuellerstatus identisch sind. Mehr als die Abfrage in Access bekomme ich leider nicht hin. Gerne Spende ich 5€ an das Forum für eure Hilfe.


SELECT First(Auftragsdaten.[Zeitstempel]) AS [Zeitstempel Feld], First(Auftragsdaten.[Auftragsnummer]) AS [Auftragsnummer Feld], First(Auftragsdaten.[Aktuellerstatus]) AS [Aktuellerstatus Feld], First(Auftragsdaten.[erledigt]) AS [erledigt Feld], Count(Auftragsdaten.[Zeitstempel]) AS AnzahlVonDuplikaten
FROM Auftragsdaten
GROUP BY Auftragsdaten.[Zeitstempel], Auftragsdaten.[Auftragsnummer], Auftragsdaten.[Aktuellerstatus], Auftragsdaten.[erledigt]
HAVING (((Count(Auftragsdaten.[Zeitstempel]))>1) AND ((Count(Auftragsdaten.[erledigt]))>1));

vg und Danke für eure Hilfe.
Antworten Top
#2
Hi,
lese ich deine Beschreibung, daß trotz unterschiedlicher ID Datensätze angeblich etwas doppelt voröiegen soll, stimmt etwas am Datenmodell nicht.
Erstelle doch ein berechnetes Feld aus den 3 anderen Kriterien und lösche dort ggf doppelte Werte. Aber richtig ist dein Aufbau bzw deine Bewertung nicht.
Mit freundlichen Grüßen  :)
Michael
Antworten Top
#3
Hallo zusammen,

ich habe zu mindestens eine Lösung nach langer Suche gefunden.Anbei der Link. So wie ich es verstehe macht man erst eine Duplikatenabfrage mit dem Assistenten. Die Abfrage passt man dann so an, dass nur noch ein Duplikat angezeigt wird und der Rest wird gelöscht.

http://www.incas-training.de/blog/2015/0...-loeschen/


Das Duplikate vorkommen, lässt sich leider bei den Prozessen bei uns der Firma nicht vermeiden.
Antworten Top
#4
Moin,
schön das du eine Lösung gefunden hast, so wie dort beschrieben, muß man die Löschabfrage ggf mehrmals ausführen, falls mehr als 1 Dublikat vorhanden ist. Danke für die Info.
Mit freundlichen Grüßen  :)
Michael
Antworten Top
#5
Hi,

hier noch was zu deinem Problem, ungetestet, sieht aber gut aus und löscht auch Mehrfachdublikate (lt Beschreibung)

http://www.dwolke.de/2012/03/sql-duplika...-loeschen/
Mit freundlichen Grüßen  :)
Michael
Antworten Top
#6
Danke für die Info, werde es testen so wie ich kann und dann den SQL Code etc. posten. vg
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste