pablomedok
pablomedok

Reputation: 148

Convert RTF embedded OLE to HTML in Access in VBA

I've got a table that has an embedded OLE field that contains RichText formatted data. I need to transfer this data to MySQL database and convert it to HTML. I use Access. Is there a way to do it quickly in VBA? I searched the web, most people use RichText control (richtx32.ocx) to get plain text, but I need it to remain formatted and I also don't have this control.

Upvotes: 1

Views: 591

Answers (1)

pablomedok
pablomedok

Reputation: 148

Here is how I solved my problem:

Option Explicit
Public wrd As Word.Application
Public doc As Word.Document

Function RTF2HTMLviaWord(rtf As String) As String
    'Open Tools --> References --> and check Microsoft Scripting Runtime

    Dim fso As New FileSystemObject
    Dim text As TextStream
    Dim temp As String
    temp = Environ("TEMP")

    If Len(rtf) > 1 Then
        Set text = fso.CreateTextFile(temp & "\RTF2HTML.rtf", True)
        text.Write rtf
        text.Close
        If wrd Is Nothing Then
            Set wrd = New Word.Application
        End If

        Set doc = wrd.Documents.Open(temp & "\RTF2HTML.rtf", False)
        doc.SaveAs temp & "\RTF2HTML.htm", wdFormatHTML
        doc.Close
        fso.DeleteFile temp & "\RTF2HTML.rtf"

        Set text = fso.OpenTextFile(temp & "\RTF2HTML.htm", ForReading, False)
        RTF2HTMLviaWord = text.ReadAll
        text.Close
        fso.DeleteFile temp & "\RTF2HTML.htm"
    Else
        RTF2HTMLviaWord = ""
    End If

End Function

The only downside is that Word produces too many garbage HTML tags. I wish it could save minimal HTML tags without formatting.

Upvotes: 2

Related Questions