从Access中读取富文本到Word

时间:2015-01-29 14:42:35

标签: vba ms-access ms-word richtext

我在Access 2007数据库中有备注字段,这些备注字段设置为富文本 - 无论是在字段还是在表单上 - 我需要将这些备注到Word并保留格式。我已经看到StackOverflow上的各种解决方案建议保存到文件(这没有格式化文本)和使用IE(错误与ExecCommand“复制”),我发现适用于大多数情况的解决方案是使用剪贴板,但我不能让它适用于所有类型的格式。

更多细节:我使用AdoDB从Word连接数据库,将数据读入数组。从那里将数据复制到剪贴板然后我使用Pastespecial - 请参阅Microsoft支持解决方案http://support2.microsoft.com/default.aspx?scid=kb;en-us;274326

连接到Access的代码在这里(但我相信这是非常标准的):

Dim cn As Object
Dim rs As Object
Dim strCon As String

'define connection
Set cn = CreateObject("ADODB.Connection")

'connect string for Access - no password
strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strDataBaseFilePath & ";Persist Security Info=False;"

'open connection
cn.Open strCon

'get recordset
Set rs = cn.Execute(strSQL)

'load data into array
LoadDataFromDatabase = rs.GetRows

Pastespecial文本到Word的代码在这里:

PutHTMLClipboard CStr(varData)
rge.PasteSpecial datatype:=WdPasteDataType.wdPasteHTML

' PutHTMLClipboard是Microsoft例程,vardata被定义为变体并保存Access中一个富文本字段的数据。

使用这种方法我得到一些异常:

  1. 包含自定义项目符号的文本(例如在我的情况下'>'而不是标准点)会变为奇怪的字符

  2. 带下划线的文本格式正确,但如果文本为粗体+下划线,则只设置粗体格式。粗体+彩色字体可以正常工作。

  3. 如果我手动突出显示Access窗体中的文本并将其直接复制并粘贴到Word中,则所有格式都会完美保留。

0 个答案:

没有答案