RichText字段访问Html模板

时间:2015-08-08 19:51:54

标签: ms-word access-vba ms-access-2013

背景:

  

我将项目描述存储到Access 2013数据库中。

     

描述是一个启用了RichText的LongText。

我想将此说明导出到模板Word 2013文件中。

我认为使用Rich Text Content Control很容易,但似乎我无法解决它。

我的代码:

Dim appword As Word.Application
Dim doc As Word.Document
Dim path As String

path = CurrentProject.path & "\template.docx"
Set appword = CreateObject("Word.Application")
appword.Visible = True
Set doc = appword.Documents.Open(path)


doc.SelectContentControlsByTag("InputOnSaleDate").Item(1).Range.Text = Me.InputInsertDate
...
doc.SelectContentControlsByTag("InputDescription").Item(1).Range.Text = Me.InputDescription

输出 (Html代码而非RichText解释)。

<div>dssfdfdf</div>

<div>&nbsp;</div>

<div><font color="#C9C9C9">dsdsdsdsdsd</font></div

有人知道我可以在哪里搜索解决这个问题吗?

编辑:这只是说明控件内容。我有多个控件内容要填充,所以我将无法使用这种方式(没有任何线索我可以将生成的rtf文件插入到书签或内容控件中)。

编辑2:

因为似乎无法直接从Access到Word使用RichText字段(而是存储HTML代码)。 我试着采取更好的方式:

  • 我真的不需要ContentControls + Word

只需要将所有字段的值导出为“可读”字样 - &gt;描述具有ItemName,Quantity,Description,Price的文件以便打印

我如何处理此问题(stml for Html5&amp; multiple divs)

  • 使用div
  • 编辑Html模板
  • 使用GetElementsById

    填写Vba代码
    Dim appie As InternetExplorer
    Dim doc As HTMLDocument
    Dim path As String
    
    path = CurrentProject.path & "\fff.html"
    Set appie = CreateObject("InternetExplorer.Application")
    appie.Visible = False
    appie.Navigate (path)
    
    Set doc = appie.Document
    doc.getElementById("insertonsaledate").insertAdjacentHTML "beforeEnd", InputInsertDate
    doc.getElementById("insertlibelle").insertAdjacentHTML "beforeEnd", InputDescription
    
    MsgBox (doc.DocumentElement.innerHTML)
    

Html文件结构:

 ....
</head>
<body>
<div id="insertitemname"></div>
<div class="mainframe">
<div class="leftinfos">
<div id="insertonsaledate">&nbsp;Mis(e) en ligne le:&nbsp;</div><br>
<div id="insertonsaleuser">&nbsp;Par :&nbsp;</div><br>
<div id="insertlibelle">&nbsp;Cat&eacute;gorie :&nbsp;</div><br>
</div>
</div>
</body>
</html>

现在 - 我要弄清楚的是找到保存这个HtmlDocument的方法。

修改:我使用了Link pseudo duplicate suggested

要添加的代码:(为了保存生成的HtmlDocument)

Dim fso As Object
Dim f As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.CreateTextFile(CurrentProject.path & "\test.html", True)
f.write doc.DocumentElement.innerHTML
f.Close
Set f = Nothing

FALT

0 个答案:

没有答案