Office: (Office 2010) Nach doppelten Wörten im Datensatzfeld suchen und eines davon löschen

Helfe beim Thema Nach doppelten Wörten im Datensatzfeld suchen und eines davon löschen in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; .. und ohne Verweis würde das so hinkommen... Code: Option Explicit Private pRegEx As Object Public Property Get oRegex() As Object If (pRegEx Is... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Hansol, 4. März 2020.

  1. Nach doppelten Wörten im Datensatzfeld suchen und eines davon löschen


    .. und ohne Verweis würde das so hinkommen...
    Code:
     
    Kyron9000, 9. März 2020
    #16
  2. Also noch bin ich bei meinem Code.
    Und auch wenn Hansol in Urlaub gefahren ist, solltest du Deinen Code noch mal bearbeiten.
    Ich bekomme keine vernünftigen Ergebnisse. Auch nicht mit Backslash.
    Nu mach mal *Smilie
    ich finde es auf jeden Fall interessant und freue mich, wenn eine Lösung mit RegExp da ist.
    Wie löst du denn in Deinem Code die verschiedenen Felder auf.
    Es soll ja nur das eine Heute im zweiten Abschintt verschwinden.
    Ich hatte mich einfach mal an Eberhards Ablaufplan gehalten. (Zumindest mit dem Dictionary)
    Gruß
    Jo
     
  3. ...ich nehme mal an deine Fragen sind an Thomas gerichtet.
    Gebe dennoch Antwort *wink.gif*. Der Code entfernt auch nur ein Wort von 2 gleichen hintereinand folgenden Wörter.
    Das was er geschrieben hat macht der Code jetzt.
    PS: würde mich aber auch interessieren wie es lt. Anfrage möglich ist mit RegEx.
     
    Kyron9000, 9. März 2020
    #18
  4. Nach doppelten Wörten im Datensatzfeld suchen und eines davon löschen

    \@Alfred
    Ja, war an Thomas gerichtet.

    Wenn ich bei MIR meinen Code eingebe
    ("Test | Heute mittag heute | Dienstag Heute")

    kommt
    Test | Heute mittag | Dienstag heute| heraus.

    Er wirft also ein Heute in der Mitte hinaus.

    Bei Thomas Code kommt bei MIR
    Test | Heute mittag heute | Dienstag Heute heraus.
    Ich sag mal Prost!

    Bei Dir stimmt es und es kommt
    Test | Heute mittag | Dienstag heute| heraus?
    Gruß Jo
     
  5. Dann schreib mal...
    Heute Mittag Mittag
    Ergebnis wird Heute Mittag sein.
     
    Kyron9000, 9. März 2020
    #20
  6. Also das ist ja ein Ding,
    bei mir kommt bei
    fErsetze("Test | Heute mittag Heute | Dienstag Heute")
    Test | Heute mittag Heute | Dienstag Heute
    heraus

    da ist ihm das Zweite Heute egal

    bei
    fErsetze("heute Mittag Mittag | heute heute | Dunst Dunst Frog")
    heute Mittag | heute | Dunst Frog
    alles richtig.



    Ach so . sobald die identischen Worte nicht mehr hintereinander stehen geht es schief.
    Warum?
    Hattest du ja auch schon geschrieben*Smilie

    Bei fErsetze("heute Mittag Mittag | heute heute | Dunst Frog Dunst")
    kommt
    heute Mittag | heute | Dunst Frog Dunst
    heraus.


    Ist wohl eine Frage des Pattern.
    Wahrscheinlich muss man noch mit der MatchCollection und SubMatches arbeiten.
    Mal sehen.
     
  7. Hallo,
    ich hatte ja darauf hingewiesen, dass dieser Reguläre Ausdruck nur nebeneinanderliegende Dubletten findet. Jetzt habe ich mal, da hat mich wirklich der Ehrgeiz gepackt, eine DB fabriziert, bitte das mal im Direktfenster testen, vielleicht mit diesem Text:
    ?fDublettenRaus("Hans Franz Hans | Klaus Hans Klaus | Tür Tor Tür")
    Klappt bei mir vorzüglich. Bin gespannt.
    Dabei wird der Text zweimal mit RegEx zerlegt, beim zweiten Mal in eine Hilfstabelle gespeichert, aus der die Dubletten durch eine SQL-Anweisung entfernt werden, dann wieder zusammengesetzt.
    Gruß
    Thomas
     
    TSchenke, 9. März 2020
    #22
  8. Nach doppelten Wörten im Datensatzfeld suchen und eines davon löschen

    Hallo Thomas,

    ja, schön überlegt und funktioniert!
    Kleinigkeiten...
    ß vergessen,
    DoCmd.SetWarnings False/True... mag ich nicht so gerne in Verbindung mit Löschen
    mM besser so…
    db.Execute "DELETE FROM Tab_Fund ", dbFailOnError
    Einmal löschen habe ich entfernt, mM war das zu viel.
    Habe noch ohne Verweis eingebaut
    (muss aber nicht sein, erstelle aber lieber alles ohne jegliche Verweise, wenn möglich).
    Aber, schöne Sache!
    Mit RegEx bin ich nicht so vertraut, brauche es fast nie, erst 1x und das funkt gut *Smilie
     
    Kyron9000, 10. März 2020
    #23
  9. Ich bin auch RegEx-Fan.
    Allerdings braucht man dieses in einer Datenbank nur, wenn vorher gehörig Mist gemacht wurde, also typischerweise bei Importen von außerhalb.

    Kleine Nebenbemerkung: RegEx ist ein äußeres Objekt und ein wenig aufwändiger als ein Instr. Daher würde ich kaskadierende Anwendung sicher vermeiden wollen. Auch wäre es ja denkbar, dass man eine 100k-Tabelle überarbeiten sollte und nicht nur ein Einzelbeispiel.
    Aus dem gleichen Grund würde ich massiertes Schreiben und Löschen in Tabellen ebenfalls vermeiden wollen.

    Der in #5 angedeutete Ablauf hat solche Überlegungen bezüglich Speicherbedarf und Laufzeit bereits zur Basis.
     
  10. Hallo Kyron & Eberhard,
    danke für die Antworten und Anregungen. Habe selbst noch eine Kleinigkeit ersetzt: nach dem Löschen der Dubletten mittels SQL-Anweisung wird der Rekordset geschlossen und wieder geöffnet, das ist natürlich extrem ungelenk, gestern abend habe ich aber nichts besseres gefunden. Diese zwei Zeilen können aber durch "rs.Requery" ersetzt werden.
    Eberhard: Ich hätte die Ergebnisse der zweiten RegEx-Schleife lieber auch in ein Array geschrieben statt in eine Tabelle, habe aber auf die Schnelle nicht herausgefunden, wie man in einem Array nach Dubletten sucht und sie löscht. Ich habe mich auch etwas über die Fragestellung des TS gewundert, nämlich darüber, welche Daten so Eingang in Datenbanken finden. Aber das war nun einmal das Problem, das man uns hingeworfen hat und das ich mit den Methoden, die ich kenne (nicht kann!), lösen wollte. Mal sehen, ob der TS mal ein Lebenszeichen sendet.
    Gruß
    Thomas
     
    TSchenke, 10. März 2020
    #25
  11. Da kann man nur Schleife laufen. Sortieren oder Filtern geht praktisch nicht.

    Alternative: Collection oder Dictionary, das sind sehr flache und eminent schnelle Objekte, und wie oben genannt, muss dort ein eingefügter Key eindeutig sein, also werden Duplikate abgeblockt.
    Dictionary hat dann weiter den Vorteil, dass es eine EXISTS-Prüfung auf einen Key gibt. Bei einer Collection muss man Fehler abfangen, und wenn man fehlerfrei programmieren will ...
    Die Key-Auflistung eines Dictionaries kann man dann direkt in ein Array übergeben, etwa
    Code:
    Mit dem bereinigten Array könnte man dann etwas anfangen.

    Wenn man mal etwas bei den Kollegen im Excelforum mitgelesen hat: Diese verwenden gerne Arrays, weil diese deutlich schneller handhabbar sind als Einzelzellenzugriffe. Wenn es aber schnell gehen soll mit einigen Aufgaben, wird das erfolgreich über Dictionaries umgesetzt.
     
  12. Hallo,
    ich habe versucht Eberhards Anregung umzusetzen, hier das Ergebnis. Sehr hilfreich war ein Fund im VB-Archiv. Vielleicht ist die Lösung, vom Problem des TS abgesehen, auch von allgemeinerem Interesse.
    Gruß
    Thomas
     
    TSchenke, 12. März 2020
    #27
  13. Nach doppelten Wörten im Datensatzfeld suchen und eines davon löschen

    Code:
     
    Claypool, 13. März 2020
    #28
  14. ... der Code ist schon sehr gut,
    (abgesehen von "ß" was aber leicht anfügbar ist somit nicht relevant.)
     
    Kyron9000, 13. März 2020
    #29
  15. Hallo,
    vielen dank an alle!*10points

    Ich war etwas im Stress, habe aber alle eure Vorschläge beherzigt und es zum Laufen gebracht.
     
Thema:

Nach doppelten Wörten im Datensatzfeld suchen und eines davon löschen

Die Seite wird geladen...
  1. Nach doppelten Wörten im Datensatzfeld suchen und eines davon löschen - Similar Threads - doppelten Wörten Datensatzfeld

  2. Doppelte finden und Zellen addieren

    in Microsoft Excel Hilfe
    Doppelte finden und Zellen addieren: Erstmal Frohes neues euch allen. ich habe soviele Varrianten ausprobiert, bis jetzt hat nichts so richtig geklappt. Hoffe Ihr könnt mir bei meinem Problem Helfen. 1. Wenn in Spalte G ein Ja und...
  3. Doppelte Werte pro Tag, an anderen nicht

    in Microsoft Excel Hilfe
    Doppelte Werte pro Tag, an anderen nicht: Hallo zusammen Ich stehe vor folgender Herausforderung - nach zig Versuchen stehe ich wieder am Anfang und bitte um Hilfe. Eine Gebäude ist mit einem Scansystem ausgestattet und jeder mit...
  4. Doppelte Werte mit 2 Bedingungen finden

    in Microsoft Excel Hilfe
    Doppelte Werte mit 2 Bedingungen finden: Hi zusammen, ich beiße mir gerade die Zähne an einer wahrscheinlich einfachen Lösung aus. Ich habe 2 Tabellen mit Kundendaten. Beide Tabellen sind identisch aufgebaut. In Spalte A stehen in...
  5. wie doppelte Wörter finden

    in Microsoft Word Hilfe
    wie doppelte Wörter finden: Hallo Forum, hat jemand eine Ahnung, wie ich in einem Word-Dokument doppelt vorkommende Wörter finden lassen kann. Ich habe in einem Word-Dokument häufig eine Aneinanderreihung von Stichwörtern,...
  6. Doppelte Worte zusammenzählen

    in Microsoft Excel Hilfe
    Doppelte Worte zusammenzählen: #closed Hallo, Ich habe jetzt schon einige Zeit im Internet nach meinem Problem gesucht aber noch keine Antwort gefunden. Ich muss dazu hinzufügen, dass ich nicht gerade die besten Excel...
  7. Doppelte Wörter zählen bzw. ausblenden mit VBA

    in Microsoft Excel Hilfe
    Doppelte Wörter zählen bzw. ausblenden mit VBA: Hallo! Ich habe eine Liste mit sich häufig wiederholenden Wörtern. Ich möchte diese Liste durchgehen und je eine Wort der doppelten Einträge in eine neue Tabelle schreiben. Dabei möchte ich in...
  8. Doppelte Wörter

    in Microsoft Excel Hilfe
    Doppelte Wörter: Hallo! Wissen Sie ob es möglich ist innerhalb eines Excel-Sheets alle doppelt vorkommenden Wörter bzw. Silben farbig hervorzuheben?? Achtung: Ich meine nicht einen Vergleich der Zellen sonder...
  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