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 ?
Hallo,
zum Ersetzen bietet sich die Replace-Funktion an.
vbCrLF entspricht chr(13) & chr(10) , wie der Konstantenname schon andeutet.
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).
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),"#")
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;
Hallo,
es gibt halt immer welche, die es besser wissen (meine ich nicht despektierlich ! ).
An Performance hatte ich gar nicht gedacht.
Ja, es funktioniert !
Vielen Dank !