online 1
gast (50)

/ Forum / Datenbanken

DatenbankenDatenbanken

Fragevon renewa vom 04.09.2019, 11:26 Options

Zeilenumbrüche ersetzen

Hallo an alle,

ich habe das folgende Problem: Nachdem ich einige Tabellen von Excel in Access importiert habe, werden die Zeileunbrüche nicht mehr richtig dargestellt. Dies ist sicher einigen bekannt.

Ich habe jetzt versucht, mir eine Routine zu schreiben, welche die Ersetzung der betreffenden Zeichenfolgen automatisch vornimmt. Daran bin ich jedoch gescheitert. Ich habe es über zwei "For Each..."-Schleifen versucht. Leider weiß ich nicht, wie man die Zeilen anspricht.

Wenn mir jemand mit meiner Variante helfen kann oder eine andere funktioniertende Variante anzubieten hat, würde ich mich freuen, sie zu hören.

Danke im Voraus

MfG
renewa


Antwort schreiben

Antwort 1 von lleopard vom 04.09.2019, 12:24 Options

Hallöle,

hier der Code:

Function FeldinhalteErsetzen(r As Recordset, Feld As String, ALt As String, Neu As String)
If r.RecordCount = 0 Then Exit Function
r.MoveFirst
Do While Not r.EOF
r.Edit
DoCmd.Hourglass False
r(Feld) = TextErsetzen(r(Feld), ALt, Neu)
r.Update
r.MoveNext
Loop
End Function


Function TextErsetzen(ByVal Text As Variant, Suchen As String, _
Ersetzen As String) As Variant

Dim Position As Integer
Dim Länge As Integer

If IsNull(Text) Then Exit Function

Länge = Len(Suchen)

Position = 0

Do
Position = InStr(Position + 1, Text, Suchen)
If Position = 0 Then Exit Do
Text = Left(Text, Position - 1) + Ersetzen _
+ Mid(Text, Position + Länge)
Loop

TextErsetzen = Text

End Function


Und diese in einem neuen Modul einfach abspeichern und zB mit:

Sub ErsetzenSonderzeichen()

Dim AktuelleDB As Database
Dim r As Recordset

Set AktuelleDB = CurrentDb

Set r = AktuelleDB.OpenRecordset("[meineTabelle]", dbOpenTable)

FeldinhalteErsetzen r, "[MeinFeldname]", vbcrlf, " "

end sub

Das ersetzt Absatzmarken durch Leerzeichen. Kannst natürlich einfach anpassen.

Gruß Leo

Antwort 2 von renewa vom 04.09.2019, 14:39 Options

Hallo lleopard,

wow und vielen Dank für deine Hilfe. Leider funktioniert es nicht ganz. Ich bekomme einen Überlauf an der Stelle
Text = Left(Text, Position - 1) + Ersetzen + Mid(Text, Position + Länge)


Ich habe nur den Aufruf der Funktion FeldinhalteErsetzen geändert, damit die Vierecke, die das Importieren anstelle eines Zeilenumbruchs erzeugt, durch
FeldinhalteErsetzen r, Spalte6, vbLf, vbCrLf
ersetzt.

Kannst du mir nochmal helfen und mir sagen, wie ich den Überlauf umgehen kann? Oder ist der Datensatz zu groß?

Antwort 3 von lleopard vom 05.09.2019, 10:08 Options

Hallo renewa,

das Problem ist, daß du natürlich in dem DS vbLf durch vbCrLf ersetzt und somit wieder ein vbLf in der zeile gefunden wird.

ich denke du solltet das lösen indem du 2 Durchläufe machst, wenn du diesen Eretzungsvorgang so umsetzen willst.

1. Ersetze vbCrLf durch zb "xxx", dann sind alle Zeilenumbrüche weg.

2. Ersetze nun wieder "xxx" durch vbLf.

Dann sollte das Überlauf-Problem behoben sein.

Gruß Leo

Antwort 4 von renewa vom 05.09.2019, 11:04 Options

Hallo,

ja du hattest vollkommen Recht. Es funktioniert jetzt einwandfrei. Einmal mehr bin ich dir zum Dank verpflichtet. Wo wohnst du und wie kann ich dir ein Bier spendieren? :)

Dankeschön!

MfG
renewa

Antwort 5 von lleopard vom 06.09.2019, 08:48 Options

Hi renewa,

büdde. Wer hier schreibt, hilft doch gerne. N Bierchen, da sage ich aber auch nicht nein. wenn du mal in die Gegend von Braunschweig kommst, sag bescheid ;-)

cu leo

Ähnliche Themen

Sonderzeichen automatisch ersetzen, hilfe!
NoR223  19.03.2007 - 89 Hits - 10 Antworten

uchen und Ersetzen
trebron94  19.03.2007 - 131 Hits - 1 Antwort

taskmanager ersetzen
^^1^^  01.04.2007 - 82 Hits -

Seitenumbrüche in Excel-sheet einfügen per VBA
snailhouse  06.08.2007 - 48 Hits - 5 Antworten

java bluej Zeilenumbrüche in Strings
.Fenris  29.05.2008 - 134 Hits - 3 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026