Office: (Office 2013) Zeilenumbruch gegen 2 Zeilenumbrüche ersetzen

Helfe beim Thema Zeilenumbruch gegen 2 Zeilenumbrüche ersetzen in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Ich füge regelmäßig per Copy and Paste Texte in ein Textfeld in Access ein. Der Text liegt im RTF-Format vor, das Textfeld ist auch auf RTF gestellt.... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von KDL, 18. Oktober 2016.

  1. Zeilenumbruch gegen 2 Zeilenumbrüche ersetzen


    Ich füge regelmäßig per Copy and Paste Texte in ein Textfeld in Access ein. Der Text liegt im RTF-Format vor, das Textfeld ist auch auf RTF gestellt.

    Das Problem ist, dass der Originaltext klare Absätze hat, also mit Zeilenumbruch + Leerzeile. Nach dem Kopieren in das Textfeld ist aber jedesmal die Leerzeile weg. So habe ich bisher diese immer mit strg + Enter neu erzeugt. Das ist aber sehr mühsam.

    Dann habe ich mir überlegt, das muss doch auch via VBA gehen und es so versucht:
    Me!txtEMail = Replace(Me!txtEMail, Chr(10), Chr(12))

    Das war schon mal nicht ganz schlecht, denn es gab tatsächlich Leerzeilen, aber dummerweise gleich 3! Das zeigt mir immerhin, dass ich mit Suchen nach
    Chr(10) richtig lag. Aber warum werden so immer 3 Leerzeilen erzeugt.

    Ich habe es dann versucht mit
    Me!txtEMail = Replace(Me!txtEMail, Chr(10), Chr(13))
    aber dann passiert gar nichts. Das gleiche gilt für
    Me!txtEMail = Replace(Me!txtEMail, Chr(10), vbCrLf)
    aber auch bei
    Me!txtEMail = Replace(Me!txtEMail, Chr(10), Chr(10) & Chr(10))
    passiert nichts.

    Wie kann man das besser machen? Wahrscheinlich ist die Lösung ganz einfach.

    Schönen Abend noch,
    Klaus

    :)
     
  2. Teste mal als Ersatzausdruck
    Code:
     
  3. Ein Zeilenumbruch in Access wie auch in VBA wird mit vbCrLf (CR+LF) umgesetzt.

    Allerdings: RichText wird per HTML umgesetzt. Daher solltest Du Dir per PlainText mal die enthaltenen HTML-Tags betrachten und einen HTML-Zeilenumbruch (< BR >) anschauen.
     
  4. Zeilenumbruch gegen 2 Zeilenumbrüche ersetzen

    \@Maxel:

    Chr(10) & Chr(13) bringt keine Änderung.
    Aber Chr(10) & Chr(12) bringt exakt das gleiche Ergebnis wie nur Chr(12), nämlich eine Erzeugung von 3 leerzeilen

    @Eberhard:

    Ja stimmt, was Access abspeichert sieht aus wie HTML (+ einer Silbentrennung)
    OK, ich habe es so versucht
    Me!txtEMail = Replace(Me!txtEMail, Chr(10), "[br]")
    (wegen der Darstellung eckige satt spitze Klaammern um br)
    Das Ergebnis sah schon besser aus: nur noch 2 statt 3 Leerzeilen - aber noch eine zuviel.

    Ich habe den Feldinhalt mal in den Notepad++-Editor kopiert und lasse auch die nichtdruckbaren Zeichen anzeigen. Vorher war (ich habe aus den spitzen Klammern eckige gemacht):
    ... [/font][/div] CR LF
    CR LF
    [div][font ...]

    Nach Ausführen von Replace chr(10) gegen [br] sieht das so aus:
    ... [/font][/div] CR LF
    [BR] CR LF
    [div][font ...]

    Merkwürdig, denn es wurde kein chr(10) ersetzt (alle CR und LF sind noch da), aber der br-Tag wurde dennoch eingefügt.

    Also: Wie kann man erreichen, dass nur 1 Zeile eingefügt wird? Auf jeden Fall ist das kein sauberes HTML, denn CR und LF gibt es dort nicht.
     
  5. Hallo,

    der Zeilenumbruch in Access wird durch die Access-VBA-Konstante vbCrLf definiert und dies entspricht der Code-Kombination Chr(13) & Chr(10).
    (Dies nur zur Information, weil es gern vergessen oder verwechselt wird.)

    Die Frage ist aber doch, woher der kopierte Text überhaupt kommt.

    Das könnte schließlich auch noch eine Rolle spielen, denn leider sieht die Codierung der Zeilenumbrüche in anderen Office-Produkten wie Excel, Word etc. teilweise völlig anders aus! Echt bedauerlich, dass es hier zwischen den Entwicklern der div. Office-Programme offensichtlich keine Kommunikation gibt.
     
    MaggieMay, 20. Oktober 2016
    #5
  6. Das Mischen von WhiteSpaces und HTML-Tags wirkt ziemlich unorientiert.
    Ich würde an so etwas denken:
    Code:
    Ein Problem willst Du wiederherstellen?
    Im Ernst: Kann es sein, dass Dein Text aus einem Worddokument stammt? Dort sorgt ein echter Zeilenumbruch für einen neuen Absatz /
    (Absätze sind in Word eigene Objekte, im Gegensatz zu Zeilen), und durch die zusätzliche Wirkung von Formatierungen werden diese Absätze sichtbar getrennt wie durch eine Zwischenzeile. Das Fehlen von wordlike-Formatierungen in Access könnte das Verschwinden der Zwischenzeile erklären.

    Falls das Problem anhält: Lade Originalquelle und Demo-DB (Formular mit gebundener Tabelle) hoch, damit man etwas probieren kann. Die Thematik RichText/HTML ist noch wenig gebraucht, so dass man kaum eigene Erfahrungen und Beispiele hat.
     
  7. Also gut, etwas mehr zum Prozedere:
    Ich kopiere Texte aus sog. E-Papers der lokalen Presse in die Datenbank. Man kann in den Druckausgaben jeden Artikel anklicken und er öffnet sich in einem separaten Fenster: s. Screenshot. Dieses zeigt reinen Text. Den kann man kopieren und in die Datenbank einfügen. (Nur ein Screenshot, denn die Seite kann man nur öffnen, wenn man diese abonniert hat. Die Zugangsdaten darf ich natürlich nicht weitergeben). Ich verwende dafür übrigens den Edge-Browser.

    Die stark abgespeckten mdb habe ich auch hier hochgeladen (als .rar).

    Wenn man die Seite kopiert und in Word einfügt, dann sieht sie genauso aus, wie auf der HTML-Seite. Wenn ich diese aber in das Access-Formular kopiere, dann werden die Leerzeilen entfernt, der Font ist auch ein anderer. Ganz verrückt: Wenn ich diese zuerst in das Access-Formular kopiere und dann direkt in Word, dann sieht es dort auf einmal wie unter Access aus. D.h. Windows 10 verändert einfach so den Inhalt des Zwischenspeichers. Aber das nur nebenbei.

    Die älteren Einträge in der mdb wurden von Hand formatiert. Die 3 von heute sind - zum Ausprobieren - völlig unverändert. Ich verweise dazu auf den Button "Test".

    Vielleicht hat jemand eine Idee,
    Klaus
     
  8. Zeilenumbruch gegen 2 Zeilenumbrüche ersetzen

    Jetzt muss ich mal rückfragen: RichText wurde mit Acc2007 eingeführt, was möglich wurde, weil das neue Datenbankformat ACCDB intern irgendwie auf XML aufgebaut wurde. Hier redest und veröffentlichst Du eine MDB ( ACCDB). Da dürfte das Ganze noch nicht funktionieren, das wäre wenigstens meine Erwartung.
     
  9. Aber ich arbeite meist mit Ac2016 (gelegentlich 2013, aber die tun sich nichts) und speichere aber als mdb ab. Ich denke, entscheidend ist die Entwicklungsumgebung und nicht das Format.

    Ich habe aber dennoch eine neue Anwendung erstellt und diesmal als .accdb gespeichert. Die Tabelle habe ich importiert, sowie ein Formular lediglich mit dem Haupttextfeld neu erstellt. Dieses habe ich auf rich-text gestellt. Genauso aber auch das Tabellenfeld, das vorher auf nur-text stand auf rich-text gestellt.

    Das Ergebnis ist, dass die alten Tabelleneinträge jetzt als reiner html-code angezeigt werden. Wenn ich dagegen neue Texte aus der Zwischenablage einfüge, dann werden diese zwar ohne die html-tags angezeigt - aber wieder so gestaucht, also ohne Leerzeilen ausgegeben - wie gewohnt.
     
  10. Nur so eine Idee...
    wer oder was sagt dir, dass es sich hierbei tatsächlich um Leerzeilen handelt und nicht etwa um Zeilen- bzw. Absatzabstände?
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    MaggieMay, 21. Oktober 2016
    #10
  11. Wenn man betrachten wollte, was passiert, könnte man die HTML-Struktur eines originalen kopierten Textes analysieren (z.B.mit phase5), sowie dann auch das Ergebnis nach dem Einfügen.
    Daraus könnte man dann die Handlungsanweisung ableiten.
     
  12. \@ MaggieMay

    Zeilen- bzw. Absatzabstände kennt man z.B. aus Word. Aber, dass es sowas in html gibt ist mir nicht bekannt. Und außerdem kann man ja via VBA nach chr(19 suchen und dieses ersetzen. Aber dieses brachte mich auf eine andere Idee ...

    @ Alle
    ... Ich habe mal das ausprobiert:
    Me!txtEMail = Replace(Me!txtEMail, Chr(10), "#########")

    Damit wurde aus dem Text

    Ins Ne*ro*tal ver*liebt
    VHS Neu*er Di*rek*tor Phi*lipp Sa*la*mon-Men*ger fühlt sich in Wies*ba*den wohl / „Wir dür*fen nie*man*den aus*schlie*ßen“
    WIES*BA*DEN. Phi*lipp Sa*la*mon-Men*ger ist neu*er Di*rek*tor der Volks*hoch*schu*le Wies*ba*den. In ei*nem In*ter*view spricht er über sei*ne er*sten Ein*drü*cke von der Stadt, über die Rol*le der VHS und er*zählt, was er ger*ne macht, wenn er ge*ra*de nicht ar*bei*tet.
    Herr Sa*la*mon-Men*ger, was ver*mis*sen Sie hier in Wies*ba*den am meis*ten, was Sie an Ih*rer frü*he*ren Ar*beits*stel*le hat*ten?


    dieser Text:

    Ins Ne*ro*tal ver*liebt
    ######### #########
    VHS Neu*er Di*rek*tor Phi*lipp Sa*la*mon-Men*ger fühlt sich in Wies*ba*den wohl / „Wir dür*fen nie*man*den aus*schlie*ßen“
    ######### #########
    WIES*BA*DEN. Phi*lipp Sa*la*mon-Men*ger ist neu*er Di*rek*tor der Volks*hoch*schu*le Wies*ba*den. In ei*nem In*ter*view spricht er über sei*ne er*sten Ein*drü*cke von der Stadt, über die Rol*le der VHS und er*zählt, was er ger*ne macht, wenn er ge*ra*de nicht ar*bei*tet.
    ######### #########
    Herr Sa*la*mon-Men*ger, was ver*mis*sen Sie hier in Wies*ba*den am meis*ten, was Sie an Ih*rer frü*he*ren Ar*beits*stel*le hat*ten?


    Jetzt weiß ich auch warum es immer zuviele Leerzeilen gibt (also, wenn ich chr(12), weil nämlich 2 chr(10) vorkommen.

    Dummerweise kann ich hier aber nicht ansetzen weil ich den Text als pdf ausgebe. Und wenn ich verwende

    Me!txtEMail = Replace(Me!txtEMail, Chr(10), chr(12) )
    Dann hat die pdf-Datei nach jedem Absatz einen Seitenumbruch, und das geht natürlich nicht.

    Zur Anmerkung von Bernhard: Ich habe einen Text in Word kopiert und diesen hier hochgeladen. Zusätzlich habe ich in Edge das html (für einen ganzen div-Bereich) ausgegegeben und als Textdatei hier eingestellt.

    Merkwürdig: Wenn ich den Text direkt aus der Seite in Word kopiere, dann bleibt die Formatierung erhalten. Wenn ich diesen aber in das Access-Formular kopiere, dann geht diese fast völlig verloren (kein Fett, keine Leerzeilen, nur die Umbrüche bleiben). Wenn ich den Text zuerst in Word kopiere, und daraus dann ins Formular kopiere, dann bleibt zumindest der Fettdruck erhalten, nicht aber die Leerzeilen.
     
  13. Zeilenumbruch gegen 2 Zeilenumbrüche ersetzen

    Nachtrag:

    Ich hatte nochmal dieses ausbrobiert
    (natürlich mit spitzen Klammern um den br-Tag):
    Me!txtEMail = Replace(Me!txtEMail, Chr(10), "[br]")

    Und das klappt gut, auch die erzeugte pdf wird nicht verhunzt.
    D.h., wenn ich jeweils 2 chr(10) nebeneinander ersetzen könnte, dann wäre mein Problem gelöst - wenn vielleicht auch nicht sehr elegant.

    Also folgendes geht nicht
    Me!txtEMail = Replace(Me!txtEMail, Chr(10) chr(10), "[br]")
    Me!txtEMail = Replace(Me!txtEMail, Chr(10) & chr(10), "[br]")
    Me!txtEMail = Replace(Me!txtEMail, Chr(10) & " " & chr(10), "[br]")

    Das erste liefert (erwartungsgemäß) eine Fehlermeldung,
    das zweite und dritte liefert keinen Treffer.

    Oder muss ich da einen Umweg gehen und zuerst die beiden chr(10) mit einem Platzhalter (wie z.B. "###") ersetzen und dann im zweiten Schritt die beiden Platzhalter durch ein [br] ersetzen?
     
  14. Hast du mal
    Code:
    probiert?
     
    Beaker s.a., 22. Oktober 2016
    #14
  15. Ja natürlich, eine Variable macht die Arbeit einfacher *Smilie
    OK, ich habe folgendes gemacht:

    Dim str As String
    str = Chr(10) & Chr(10)
    ' Alternativ: str = Chr(10) & " " & Chr(10)
    Me!txtEMail = Replace(Me!txtEMail, str, "XXX")

    Beide Alternativen liefern aber leider keinen Treffer.

    Nehme ich dagegen nur
    Dim str As String
    str = Chr(10)
    Me!txtEMail = Replace(Me!txtEMail, str, "XXX")

    Dann gibt es so ein Ergebnis:

    Ins Ne*ro*tal ver*liebt
    XXX XXX
    Neu*er Di*rek*tor Phi*lipp Sa*la*mon-Men*ger fühlt sich in Wies*ba*den wohl
    XXX XXX

    Man sieht, es ist irgendwas vor und zwischen den XXX, aber das ist offensichtlich kein Leerzeichen (" "). Aber was?
     
Thema:

Zeilenumbruch gegen 2 Zeilenumbrüche ersetzen

Die Seite wird geladen...
  1. Zeilenumbruch gegen 2 Zeilenumbrüche ersetzen - Similar Threads - Zeilenumbruch Zeilenumbrüche ersetzen

  2. Zeilenumbruch im Serientext

    in Microsoft Word Hilfe
    Zeilenumbruch im Serientext: Hallo Gemeinde, ich habe folgendes Problem. Ich habe einen Serienbrief, bei dem in einer Aufzählung ein Datenfeld aus einer Excel-Datenquelle eingefügt wird. In dem Datenfeld ist ein Text, der...
  3. Word nach TXT exportieren und manuelle Zeilenumbrüche erhalten?

    in Microsoft Word Hilfe
    Word nach TXT exportieren und manuelle Zeilenumbrüche erhalten?: Hallo Forum, hat es schon mal jemand geschafft, beim Export nach TXT eine Codierung auszuwählen, die manuelle Zellenumbrüche nicht als Absatzmarken codiert, sodass beim Reimport der Textdatei...
  4. Aus 1 Spalte 2 machen beim Zeilenumbruch

    in Microsoft Excel Hilfe
    Aus 1 Spalte 2 machen beim Zeilenumbruch: Hallo, ich habe folgendes Problem, ich habe eine Exceltabelle mit Namen usw. die sind aber alle in einer Zelle geschrieben, ich muss für einen Seriendruck aber nur die Namen in eine Zelle und den...
  5. Bei Textmarke aktualisieren automatischer Zeilenumbruch

    in Microsoft Word Hilfe
    Bei Textmarke aktualisieren automatischer Zeilenumbruch: Moin, ich habe eine Textmarke im Betreff eines Serienbriefs erstellt, die im ersten Absatz wiederholt werden soll. Hinter der Textmarke im ersten Absatz steht noch ein Wort, welches beim...
  6. Serienbrief Excel Datenquelle

    in Microsoft Word Hilfe
    Serienbrief Excel Datenquelle: Hallo zusammen, ich habe folgendes Problem: In meiner Excel Datenquelle Schreibe ich z.B. 1234567, 1234568 Name Spalte Ref Im Sereienbrief steht dann eine 0 In der alten Doc Version gab es hier...
  7. Zeilen in Spalten umformatieren

    in Microsoft Excel Hilfe
    Zeilen in Spalten umformatieren: Hi, ich habe eine Datei mit einer größeren Datenmenge in folgendem Format bekommen: Test GmbH Adresse 1 www.test.xy Test 2 GmbH Adresse 2 www.test2.xy Jeder einzelne Datensatz besteht immer aus...
  8. Power Query Zeilenumbrüche in Spalte ersetzen

    in Microsoft Excel Hilfe
    Power Query Zeilenumbrüche in Spalte ersetzen: Hallo zusammen und einen schönen Tag, ich suche jetzt schon mehr als 3 Stunden im Netz nach einer Lösung für mein kleines Problem. In Excel 2013 habe ich eine Lösung gefunden -> Suche Strg (j)...
  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