rene1976
Goto Top

Wie kann man ein Access RTF Format im Nur Text Feld - in Excel order Word exportieren

Hallo,

ich habe eine alte Access .mdb Datei und kann diese mit Access 2013 öffnen.

Jetzt habe ich in einer Tabelle eine Spalte XY mit Datentyp "Langer Text" und Textformat "Nur Text".
In dieser Spalte wurden aber Texte im RTF Format gespeichert.

Frage:
Wie kann ich diese Spalte exportieren so das das RTF-Format beim Export z.B. in Excel oder Word lesbar rauskommt?

In Access kann ich zwar unter Externe Daten --> Exportieren die Tabelle in Word oder Excel exportieren, aber die "Nur Text" Spalte mit der RTF Formatierung ist dann nicht leserlich sonder 1:1 exportiert.

Kennt jemand eine Trick wie ich beim exportieren das RTF lesbar bekomme?
Order kann ich in Access die Spalte in eine andere Spalte oder Tabelle konvertiert und lesbar abspeichern?

Besten Dank.

Rene

Content-Key: 329153

Url: https://administrator.de/contentid/329153

Printed on: April 19, 2024 at 14:04 o'clock

Mitglied: 132272
132272 Feb 12, 2017 updated at 10:11:51 (UTC)
Goto Top
Member: StefanKittel
StefanKittel Feb 12, 2017 updated at 11:54:54 (UTC)
Goto Top
Hier der Code falls der Link mal irgendwann tot sein sollte.

NICHT VOLLSTÄNDIG!
Siehe weiter Unten!

Public Function ConvRTFtoText( _
  ByVal strRTF As String, _
  Optional booSingleRun As Boolean) _
  As String

' Converts RTF formatted string to plain text using RTF ActiveX control.  
Member: colinardo
colinardo Feb 12, 2017 updated at 11:47:32 (UTC)
Goto Top
Hallo Rene,
In dieser Spalte wurden aber Texte im RTF Format gespeichert.
OK, d.h. gehe ich richtig in der Annahme das dort Codes wie z.B. folgende stehen? (Ich frage deshalb weil in Access Daten mit HTML-Tags manchmal auch als "RTF" durchgehen.)
{\rtf1
Guten Tag!
\line
{\i Dies} ist \b{\i ein
\i0 formatierter \b0Text}.
\par
\i0 Das \b0Ende.
}
Wenn ja dann erstellt folgender Code in der jeweiligen Tabelle eine weitere Spalte, konvertiert den RTF-Code in lesbaren Plaintext und fügt Ihn in die neue Spalte ein. Tabellenname, Spaltenname und "neuer" Spaltenname bitte in den Konstanten an deine Situation anpassen.
Sub ConvertRichtextColumnToPlaintextColumn()
    On Error Resume Next
    'Variablen  
    Dim rec As Recordset, rtf as Object
    ' Konstanten  
    ' Name der Tabelle  
    Const TABLENAME = "Testdaten"  
    ' Name des Feldes in dem der Richtext-String steht  
    Const FIELDNAME = "Beschreibung"  
    ' Name der neuen Spalte die erzeugt wird  
    Const FIELDNAME_NEW = "Beschreibung_Neu"  
    ' --------  
    'RTF Control erzeugen  
    Set rtf = CreateObject("RICHTEXT.RichtextCtrl")  
    With CurrentDb
        ' neue Spalte der Tabelle hinzufügen  
        .Execute "ALTER TABLE " & TABLENAME & " ADD " & FIELDNAME_NEW & " MEMO"  
        'Recordset öffnen  
        Set rec = .OpenRecordset(TABLENAME)
        rec.MoveFirst
        ' Jede Zeile durchlaufen und umgewandelten Richtext der neuen Spalte zuweisen  
        While Not rec.EOF
            rtf.TextRTF = rec.Fields(FIELDNAME).Value
            rec.Edit
            rec.Fields(FIELDNAME_NEW).Value = Application.PlainText(rtf.Text)
            rec.Update
            rec.MoveNext
        Wend
    End With
    Set rtf = Nothing
    MsgBox "Verabeitung abgeschlossen", vbInformation  
End Sub
Grüße Uwe
Member: colinardo
colinardo Feb 12, 2017 at 11:47:07 (UTC)
Goto Top
@StefanKittel

da fehlt die Hälfte face-wink

Grüße Uwe
Member: StefanKittel
StefanKittel Feb 12, 2017 updated at 12:16:36 (UTC)
Goto Top
ups

Public Function ConvRTFtoText( _
  ByVal strRTF As String, _
  Optional booSingleRun As Boolean) _
  As String

' Converts RTF formatted string to plain text using RTF ActiveX control.  
' When finished, Rich Text object is removed if booSingleRun is True.  
'  
' 2001-05-27. Cactus Data ApS, CPH.  
  
  Static objRTF As Object
  Static booErr As Boolean
  Dim strText   As String
  
  On Error GoTo Err_ConvRTFtoText
  
  If objRTF Is Nothing Then
    Set objRTF = CreateObject("RICHTEXT.RichtextCtrl")  
  End If
  
  With objRTF
    .TextRTF = strRTF
    strText = .Text
  End With
  
  If booSingleRun = True Then
    Set objRTF = Nothing
  End If
  
  ConvRTFtoText = strText
  
Exit_ConvRTFtoText:
  Exit Function

Err_ConvRTFtoText:
  If booErr = False Then
    MsgBox "Error " & Err.Number & ". " & Err.Description & "!", _  
           vbExclamation + vbOKOnly, _
           "Rich Text converter"  
    ' Only show error message once per session.  
    booErr = True
  End If
  Resume Exit_ConvRTFtoText
  
End Function

Quelle: https://www.experts-exchange.com/questions/28217794/Remove-RTF-codes-on- ...
Mitglied: 132272
132272 Feb 16, 2017 at 11:24:20 (UTC)
Goto Top