Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Zeilenumbruch löschen

Begonnen von nurmikss, Februar 12, 2019, 18:06:25

⏪ vorheriges - nächstes ⏩

nurmikss

Hallo,
ich weiß jetzt, wie ich nach Zeilenumbrüchen suche.

Wie kann ich Zeilenumbrüche aus Textfeldern löschen bzw. durch ein anderes Zeichen (z.B. Leerzeichen) ersetzen ?
Wenn ein Zeilenumbruch die Kombination aus LF=Linefeed= chr(10) und CR=Carriage return = chr(13) ist, kommt es beim Löschen wohl auch auf die Reihenfolge der beiden an, oder ?
Ich verwende Microsoft Office Professional plus 2010

DF6GL

#1
Hallo,

zum Ersetzen bietet sich die Replace-Funktion an.


vbCrLF entspricht   chr(13) & chr(10)   , wie der Konstantenname schon andeutet.

nurmikss

Also etwa so ?
UPDATE Tabelle1
SET Tabelle1.textfeld = Replace(Tabelle1.textfeld,vbCrLF,"#")
WHERE InStr([textfeld],Chr(10))<>False OR InStr([textfeld], Chr(13)) > 0

Jetzt bräuchte ich nocht einen kleinen Stups, wie ich Access sage, dass vbCrLF ein Zeilenumbruch sein soll (so wie ich es oben geschrieben habe, fragt Access nach dem Parameter vbCrLF - also: einfachen Text könnte ich auf diese Weise durch "#"ersetzen lassen, aber keinen Zeilenumbruch).
Ich verwende Microsoft Office Professional plus 2010

MzKlMu

Hallo,
in einer Abfrage kann vbLfCr nicht verwendet werden.
Die Where Kalusel ist auch überflüssig.
UPDATE Tabelle1 SET textfeld = Replace(textfeld,Chr(10) & Chr(13),"#")
Gruß Klaus

Lachtaube

Hallo,

es heißt natürlich vbCrLf und muss auch in dieser Reihenfolge angegeben werden. Wenn die WHERE-Klausel weggelassen wird, dauerts entsprechend länger.
UPDATE Tabelle
SET    Feld = Replace(Feld, Chr$(13) & Chr$(10), Replacement)
WHERE  Instr(Feld, Chr$(13) & Chr$(10)) > 0;
Grüße von der (⌒▽⌒)

MzKlMu

Hallo,
es gibt halt immer welche, die es besser wissen (meine ich nicht despektierlich ! ).
An Performance hatte ich gar nicht gedacht.
Gruß Klaus

nurmikss

Ja, es funktioniert !
Vielen Dank !
Ich verwende Microsoft Office Professional plus 2010