gpt4 book ai didi

ms-access - 使用 VBA 将 RTF 文本从 Access 复制到单词表

转载 作者:行者123 更新时间:2023-12-04 20:54:26 28 4
gpt4 key购买 nike

有没有办法使用 VBA 将 RTF 文本从 Access 数据库中的备注字段复制到 Word 文档。我现在有这个代码,但它生成 html 文本(文本包括标签但没有格式化)。

' Query the database and get the sales for the specified customer
Set rs = CurrentDb.OpenRecordset("SELECT * FROM Sales WHERE Sales.[ID] ='" & Forms![customers]![id] & "'")

'Check to see if the recordset actually contains rows
If Not (rs.EOF And rs.BOF) Then
rs.MoveFirst
Do Until rs.EOF = True

' Create file and add rtf text
Set ts = fso.CreateTextFile("c:\temp\temp.rtf", True)
ts.Write rs(3)
ts.Close

' Add a row
doc.Tables(1).Rows.Add

' Get the number of the added row to add data
i = doc.Tables(1).Rows.Last.Index

' Add sale to word table
doc.Tables(1).Cell(i, 2).Range.InsertFile "C:\temp\temp.rtf", , False


'Move to the next record. Don't ever forget to do this.
rs.MoveNext
Loop
Else
MsgBox "There are not records in the recordset."
End If

MsgBox "Finished." & i

rs.Close
Set rs = Nothing

有没有其他方法可以做到这一点?

最佳答案

请注意,备注字段的“富文本”选项不会将格式化文本存储为 RTF。格式化文本存储为 HTML,这就是您在文本中看到 HTML 标签的原因。

以下 Access VBA 代码创建一个 Word 文档,其中包含格式化文本并保存为 .rtf .如果您不 promise 使用 RTF,则可以轻松修改代码以将文档另存为 .doc。或 .docx .

Sub FormattedTextToWord()
Dim objWord As Object ' Word.Application
Dim fso As Object ' FileSystemObject
Dim f As Object ' TextStream
Dim myHtml As String, tempFileSpec As String

' grab some formatted text from a Memo field
myHtml = DLookup("Comments", "MyTable", "ID=101")

Set fso = CreateObject("Scripting.FileSystemObject") ' New FileSystemObject
tempFileSpec = fso.GetSpecialFolder(2) & "\" & fso.GetTempName & ".htm"

' write to temporary .htm file
Set f = fso.CreateTextFile(tempFileSpec, True)
f.Write "<html>" & myHtml & "</html>"
f.Close
Set f = Nothing

Set objWord = CreateObject("Word.Application") ' New Word.Application
objWord.Documents.Add
objWord.Selection.InsertFile tempFileSpec
fso.DeleteFile tempFileSpec
' the Word document now contains formatted text

objWord.ActiveDocument.SaveAs2 "C:\Users\Public\zzzTest.rtf", 6 ' 6 = wdFormatRTF
objWord.Quit
Set objWord = Nothing
Set fso = Nothing
End Sub

关于ms-access - 使用 VBA 将 RTF 文本从 Access 复制到单词表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16350527/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com