Office: (Office 2000) Duplikate löschen

Helfe beim Thema Duplikate löschen in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo Forum, wie baue ich eine Löschabfrage, wenn ich a) die zu löschenden Duplikate mittels Duplikatsabfrage herausgefunden und in einer Tabelle habe... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Cosja, 27. März 2011.

  1. Duplikate löschen


    Hallo Forum,
    wie baue ich eine Löschabfrage, wenn ich

    a) die zu löschenden Duplikate mittels Duplikatsabfrage herausgefunden und in einer Tabelle habe
    b) die zu löschenden Datensätze in einer DB-Abfrage habe

    Wäre für Hilfe sehr dankbar, Cosja

    :)
     
  2. Hi,

    sei ID das Feld, das die Delinquenten in beiden Tabellen erkennbar macht, dann geht das so:

    Code:
     
    Atrus2711, 29. März 2011
    #2
  3. Vielen Dank für die schnelle Antwort.

    Ich habe noch nie eine Löschabfrage erstellt.
    Wohin muss ich den Code kopieren?

    Danke, Cosja
     
  4. Duplikate löschen

    Mach erstmal eine Kopie der anzufassenden Tabelle. Man weiß ja nie... *biggrin.gif*

    Und dann: neue Abfrage, Ansicht/SQL, reinkopieren, ggf. Feld- und Tabellennamen anpassen, und ausführen per Ausrufezeichen-Symbol.
     
    Atrus2711, 29. März 2011
    #4
  5. Ja, ich habe eine Sicherungskopie *Smilie

    Aber in die Löschabfrage sollte ich vorher in der Entwurfsansicht die Tabelle (in die die Duplikate einmal aufgeührt sind = tbl_Duplikate) sowie die Abfrage mit den gesamten Daten (= qry_alleRg_verkettet) einfügen?

    Der gemeinsame ID ist das Feld 'verkettet'.

    Muss ich in der SQL-Ansicht
    Daten
    ID
    Delinquenten

    ersetzen

    in

    qry_alleRg_verkettet
    verketten
    tbl_Duplikate

    Was geschieht mit dem * in deinem Code?

    Sorry die vielen Fragen ..... Cosja
     
  6. Mein Code ist SQL, das ist die schriftliche Darstellung der Abfrage. Der grafische Entwurf, den du bisher kennst, ist quasi nur ein Generator für SQL.

    Wenn du in meiner SQL die Feld- und Tabellennamen einsetzt, wie sie bei dir lauten, sollte das direkt so lauffähig sein - ohne grafischen Entwurf. Der fällt allenfalls als Nebenprodukt ab.
     
    Atrus2711, 29. März 2011
    #6
  7. Hallo
    im ersten Beitrag von Martin heisst es:
    Ansicht/SQL

    Wenn Du im Abfrage Editor (grafische Entwurf) bist

    oben Links im Menü unter Datei kannst Du wechseln zwichen
    Entwurfs Ansicht , Daten ansicht und SQL
    da gehst Du auf SQL
    und Kopierst den Befehl von Martin !
     
    Lanz Rudolf, 29. März 2011
    #7
  8. Duplikate löschen

    Hallo zusammen,

    ich bin noch neu auf dem Gebiet Access und SQL und daher etwas "wackelig" auf den Beinen. Daher meine Frage: Würde diese Löschabfrage nicht alle Datensätze löschen, die mehrfach vorhanden sind und nicht nur die, die "überzählig" sind? Wären 3 Datensätze "Schmidt" in der Datenbank, soll doch sicher einer davon stehen bleiben?

    Ich hatte ein ähnliches Problem und bin "andersherum" gelaufen, weil ich's nicht besser wusste:
    Habe die Tabelle mit den Namen verdoppelt - Name "ohneDupletten" - (für die Struktur) und alle Datensätze hierin gelöscht. Dann habe ich eine Anfügeabfrage laufen lassen, die mir über "Distinct" nur jeweils einen Datensatz gleichen Namens einfügte.

    Also so:
    Code:
    Finde ich recht umständlich - ginge das nicht auch einfacher? Einen Primärschlüssel auf dieses Feld zu setzen habe ich leider versäumt - wird jetzt aber für die Zukunft nachgeholt.

    Grüße
    EarlFred
     
    EarlFred, 29. März 2011
    #8
  9. Wenn du eine Abfrage erstellst, kannst du doch nach Nachnamen gruppieren.
    Dann erhälst du statt viele Müller nur einen Müller.
    Das dann als Anfügeanfrage und fertig.

    mfg
    Roland
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    zra8886, 29. März 2011
    #9
  10. Hallo Roland,

    sinngemäß habe ich es auch so gemacht.

    Aber was gebe ich als Zieltabelle vor? Dies muss ja erstmal eine Tabelle gleicher Struktur sein, damit ich alle Informationen 1:1 erhalte. Daher der Schritt des verdoppelns der Tabelle (geht auch anders, habe ich mittlerweile herausgefunden: Im Entwurfsmodus kann man "Speichern unter...", so erhält man eine leere Tabelle gleicher Struktur, in die man eintragen kann).

    Umständlich aber auch deswegen, weil man alle Felder in der Abfrage einzeln auswählen und zuweisen muss. Hat man eine Vielzahl davon, dauert die Erstellung eben eine Zeit. Einfacher wäre daher das Löschen in der Originaltabelle - aber eben genau daran bin ich gescheitert.

    Grüße
    EarlFred
     
    EarlFred, 29. März 2011
    #10
  11. Hi,

    in der Orignaltabelle kannst du schon löschen. Meine SQL leistet das.

    Wenn du aber genau hinsiehst, erkennst du, dass du die Sätze löschst, deren ID (!) in der Dublettentabelle steht. Es wäre fahrlässig, statt der ID den Nachnamen o.ä. zu nehmen, denn der Nachname kann mehrfach vorkommen. Wenn "ein Schmidt" doppelt ist, kann man eben nicht "alle Schmidts" außer dem einen löschen.

    Du könntest daher vielleicht auch so vorgehen:
    • bilde in einer neuen Abfrage die "Überlebenden", indem du nach den relevanten Feldern gruppierst. Am Beispiel Personen könnten das Nachname, Vorname und Geburtsdatum sein. Gruppiere nach diesen Feldern und lass dir z.B. die minimale ID ausgeben. Das sind die "Überlebenden".
    • Die Löschabfrage löscht dann alle Sätze, deren ID Nicht in der Überlebenendentabelle steht. Denn das sind die Duplikate. Meine SQL müsstets du dann so abwandeln: DELETE * FROM Daten WHERE ID Not IN (SELECT ID FROM Überlebende)
     
    Atrus2711, 29. März 2011
    #11
  12. Hallo Fred,

    verstehe das so jetzt nicht.

    Ich mache das folgendermaßen:

    Neue Abfrage im Entwurfsmodus
    Tabelle hinzufügen
    einzelne Feldnamen (also nicht das Sternchen) durch doppelklicken hinzufügen
    rechter Mausklick Funktionen

    Mehr braucht es nicht.
    Bei Bedarf kann man doch dann daraus eine Anfüge- oder Tabellenserstellungsabfrage machen.

    mfg
    Roland
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    zra8886, 29. März 2011
    #12
  13. Duplikate löschen

    Hallo nochmals,

    @roland:
    mir fehlt halt noch der Überblick und die Übung, da ich seit geschlagenen 10 Stunden mit Access arbeite *wink.gif*
    Danke also für den Hinweis mit der Tabellenerstellungsabfrage, die hatte ich noch nicht im Visier und vereinfacht das ganze doch erheblich!

    @Martin
    Auch Dir danke für den Hinweis. Auch bei Deiner ursprünglichen Abfrage machte sich meine geringe Access-Erfahrung bemerkbar - habe den Dreh mit der ID zu arbeiten schlichtweg nicht realisiert - nehme alles zurück und behaupte das Gegenteil!
    Deine veränderte Abfrage klappt wunderbar - das erleichtert die Sache enorm.

    Also vielen Dank Euch beiden für die guten Tipps, habe eine Menge gelernt!

    Grüße
    EarlFred
     
    EarlFred, 30. März 2011
    #13
  14. Insgesamt könnte man auch einen anderen Ansatz als den von Aschenputtel (Erbsen und Asche mischen und danach wieder trennen) verfolgen:

    - Die eigentliche Zieltabelle (verankert im Datenmodell) ist an den notwendigen Stellen eindeutig indiziert (bei mehreren Schlüsselfeldern auch über einen zusammengesetzten Index). Damit ist da das Entstehen von Duplikaten sicher verhindert.
    - Das Neueinfügen von Datensätzen unterzieht man einer Inkonsistenzprüfung, um damit
    a) Schlüsselverletzungen zu vermeiden (Schlüsselverletzungen sind auch Fehler),
    b) zeitlich relevanten Aufwand zu begrenzen.

    Wenn man alles (z.B. 500k Datensätze) neu einfügt, um dann vielleicht fast alles (z.B. 480k Datensätze) zu löschen und das über ein Netzwerk jagt, ist das sicher ein höherer Aufwand, als wenn man nur die notwendigen 20k Datensätze einfügt.

    Ergo: Mit passenden Strukturen entstehen gewisse Probleme gar nicht erst bzw. sie müssen nahe dem Punkt der Entstehung (beim Verursacher) gelöst werden.
     
  15. Hallo Eberhard,

    danke auch Dir für den Hinweis.
    Die Datenbank, an die ich Hand anlegen sollte, hatte den Schlüssel unlogisch gesetzt. Nach Umarbeitung der Datentabelle sitzt der nun an der richtigen Stelle, somit sollte das Problem für die Zukunft vom Tisch sein.
    Grüße
    EarlFred
     
    EarlFred, 30. März 2011
    #15
Thema:

Duplikate löschen

Die Seite wird geladen...
  1. Duplikate löschen - Similar Threads - Duplikate löschen

  2. Duplikate mit Nebenbedingung löschen

    in Microsoft Excel Hilfe
    Duplikate mit Nebenbedingung löschen: Hallo zusammen, ich würde gerne in einer Excel Datei per Macro in einer bestimmten Spalte alle Duplikate rauslöschen, soweit auch kein Problem. Allerdings möchte ich immer das Duplikat löschen,...
  3. Array Duplikate Löschen

    in Microsoft Excel Hilfe
    Array Duplikate Löschen: Hallo miteinander, ich habe das Problem das ich aus einer Großen Tabelle, zwei Zellen auslesen muss in der Nummern per ";" getrennt drin stehen muss, aus beiden Zellen muss ich dann die Duplikate...
  4. Doppelte Zeilen (Duplikate) löschen

    in Microsoft Excel Hilfe
    Doppelte Zeilen (Duplikate) löschen: Hallo *Smilie ich habe hier ein Problem bei meinem vba-Code, der Zeilen innerhalb einer Tabelle vergleichen und doppelte löschen soll. Eine Löschung soll nur erfolgen, wenn jede Spalte in der...
  5. Brauche Hilfe für VBA Code zum löschen von Duplikaten!

    in Microsoft Excel Hilfe
    Brauche Hilfe für VBA Code zum löschen von Duplikaten!: Hallo ,wie in der Überschrift bereits zu sehen ist ,brauche ich Hilfe für einen VBA Code. Ich bin bin ein absoluter Neuling in Sachen Forenbeiträge und Excel. Daher bitte ich um Verständnis. Zu...
  6. Duplikate löschen (mit dazugehöriger Zeile)

    in Microsoft Excel Hilfe
    Duplikate löschen (mit dazugehöriger Zeile): Hallo zusammen, Ich möchte gerne ganze Zeilen aufgrund von doppelten Einträgen in nur einer Zeile löschen. Aufgrund der E-Mail-Adresse (nun geschwärzt aus Datenschutzgründen) sollen doppelte...
  7. Liste durchsuchen, duplikate löschen und wo anders kopieren

    in Microsoft Excel Hilfe
    Liste durchsuchen, duplikate löschen und wo anders kopieren: hallo habe folgendes Problem, ich bekomme eine Liste mit vielen Daten, mit unterschiedlichen Buchungsnummern die entweder mit E..., I..., oder 800.... anfangen. Ziel soll es nu sein die ganze...
  8. Access Duplikate auswählen und ältere löschen

    in Microsoft Access Hilfe
    Access Duplikate auswählen und ältere löschen: Hallo, Meine Abfrage "AbfrageLöschen" spuckt die Zellen aus, die ich in der Datentabelle Tabelle1löschen möchte. Sobald ich aber den Abfragetyp auf "Löschen" ändere, erhalte ich die...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden