在我的代码中,我从MS Access打开一个word文档,并读出文档的某个部分。如果我这样做并且只需要存储纯文本,这很容易......但我需要保留所有格式。
根据我在网上看到的内容,Access 2007及以上版本可以轻松存储RTF格式(RTF)。我调整了Access表,将指定的字段定义为“Memo”和“Rich Text”。因此,该领域本身已经建立并正常运作。
手动复制和粘贴一些数据会按原样存储。
我的问题似乎无法找到答案:你是如何使用Code ???
进行的以下是我目前所拥有的相关代码段:
Set doc = New Word.Application
doc.Visible = True
Set dcmt = doc.Documents.Open(sPathTemplate)
Set sectn = dcmt.Sections(2)
Dim x As String
sAnalystText = sectn.Range.Tables(1).cell(1, 1).Range.FormattedText
rsComments.AddNew
rsComments![ISIN] = "Fake_ISIN"
rsComments![Fund_Selection] = 1
rsComments![Long Comment Exec] = sAnalystText
rsComments.Update
我尝试过使用.Text
和.FormattedText
,但都不起作用。
任何帮助非常感谢!
答案 0 :(得分:1)
Dim rs As New ADODB.Recordset
Dim A() As Byte
Dim myrtf As Variant
Dim doact As Document
Set doact = ActiveDocument
myrtf = Null
ActiveDocument.Range(0, 100).Copy
Dim dc As New Document
dc.Activate
dc.Range(0, 0).PasteAndFormat wdFormatOriginalFormatting
dc.SaveAs2 FileName:="C:\x.rtf", FileFormat:=wdFormatRTF
dc.Close
doact.Activate
Open "C:\x.rtf" For Binary As #1
ReDim A(LOF(1))
While Not (EOF(1))
Get #1, , A(i)
i = i + 1
Wend
Close #1
myrtf = A
conn.Open "Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=C:\test.accdb"
strsql = "Insert into table ( rftfield) values ('" & myrtf & "')"
conn.Execute strsql
conn.Close