News & Tipps zu Microsoft Access

Lesen Sie hier einige der besten Beiträge aus SmartTools Access Weekly sowie ausgewählte Inhalte anderer E-Mail-Newsletter von SmartTools Publishing rund um Microsoft Access.

Beitrag aus SmartTools Access Weekly

Sonderzeichen im Access-Memofeld ersetzen

Access 365 2024 2021 2019 2016 2013 2010

FRAGE In einem Memofeld sind nach einem Import aus einem anderen Datenbanksystem im Text die Zeichen "0x0D" vorhanden. Diese Zeichen müssen durch Zeilenumbrüche ersetzt werden, wobei die Zeichen an mehreren Stellen im Text vorhanden sein können. Mit der Suchen-/Ersetzen-Funktion komme ich nicht weiter, zumal ich sie nach jedem Import erneut aufrufen müsste. Lässt sich das eventuell per VBA automatisieren?

Diverse Anfragen

ANTWORT Öffnen Sie das Formular mit dem Memofeld im Entwurfsmodus. Stellen Sie die Eigenschaft "Beim Anzeigen" auf den Eintrag "[Ereignisprozedur]" ein und klicken Sie auf die Schaltfläche mit den drei Punkten, um den VBA-Editor zu öffnen. Geben Sie dort folgende Anweisungen ein:

If InStr(Me.Memofeld, "0x0D") > 0 Then
  Me.Memofeld = Replace(Me.Memofeld,"0xOD", vbCrLf)
End If

"Memofeld" ersetzen Sie durch den Namen des Memofeldes in Ihrem Formular. Speichern Sie die Änderungen und verlassen Sie die VBA-Entwicklungsumgebung wieder. Bei der Anzeige eines Datensatzes im Formular wird nun automatisch die Ereignisprozedur "Beim Anzeigen" aufgerufen. Die obigen Anweisungen prüfen dann, ob im Memofeld die Zeichen "0x0D" vorhanden sind. Ist das der Fall, sorgt ein Aufruf der Funktion "Replace()" dafür, dass alle Zeichen "0x0D" im gesamten Memofeld durch "vbCrLf" (Zeilenumbrüche) ersetzt werden.