背景:
我将项目描述存储到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> </div>
<div><font color="#C9C9C9">dsdsdsdsdsd</font></div
有人知道我可以在哪里搜索解决这个问题吗?
编辑:这只是说明控件内容。我有多个控件内容要填充,所以我将无法使用这种方式(没有任何线索我可以将生成的rtf文件插入到书签或内容控件中)。
编辑2:
因为似乎无法直接从Access到Word使用RichText字段(而是存储HTML代码)。 我试着采取更好的方式:
只需要将所有字段的值导出为“可读”字样 - &gt;描述具有ItemName,Quantity,Description,Price的文件以便打印
我如何处理此问题(stml for Html5&amp; multiple divs)
使用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"> Mis(e) en ligne le: </div><br>
<div id="insertonsaleuser"> Par : </div><br>
<div id="insertlibelle"> Catégorie : </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