如何将Word文档中的RTF插入到访问表字段中

时间:2015-05-22 14:26:40

标签: ms-access access-vba

在我的代码中,我从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,但都不起作用。 任何帮助非常感谢!

1 个答案:

答案 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