通过DAO记录集从Excel单元格向Access发送富文本格式
我拥有的 我有一个excel单元格,上面写着“A1”,还有一些格式化的文本。假设文本带下划线且粗体,并显示“abc”,每个字母的颜色不同 在access中,我有一个带有备注字段的表,文本格式设置为RTF 我想要什么 今天之前,我设法从Excel中打开一个记录集,获取Access表字段的文本和格式,并将其发送到Excel单元格。现在我想做的是相反的,但仍然来自Excel 我尝试的 当ID=4时,我尝试将A1的格式化文本发送到备注字段。发送单元格的值不会保留格式,也不会将单元格作为对象发送。以下是我尝试的代码:通过DAO记录集从Excel单元格向Access发送富文本格式,excel,ms-access,vba,Excel,Ms Access,Vba,我拥有的 我有一个excel单元格,上面写着“A1”,还有一些格式化的文本。假设文本带下划线且粗体,并显示“abc”,每个字母的颜色不同 在access中,我有一个带有备注字段的表,文本格式设置为RTF 我想要什么 今天之前,我设法从Excel中打开一个记录集,获取Access表字段的文本和格式,并将其发送到Excel单元格。现在我想做的是相反的,但仍然来自Excel 我尝试的 当ID=4时,我尝试将A1的格式化文本发送到备注字段。发送单元格的值不会保留格式,也不会将单元格作为对象发送。以下是我
Sub test2()
Dim datab As Database
Dim rs As Recordset
Dim path As String
Dim str As String
path = "C:\Users\289894\Desktop\Database1.accdb"
Set datab = OpenDatabase(path)
Set rs = datab.OpenRecordset("SELECT * FROM [Table1]")
Do Until rs.EOF
rs.Edit
If rs!ID = 4 Then
rs!Memo = Range("A1")
rs.Update
End If
rs.MoveNext
Loop
rs.Close
End Sub
是否有一种方法可以发送文本,以便Access以其格式存储文本,而无需手动检查整个字符串的格式,在必要时添加HTML标记,然后发送?我希望不会,并想知道如何修改我的代码发送文本格式 Access将备忘录格式称为“富文本”,但如果仔细查看,帮助会显示: 选择富文本测试以将文本存储为HTML并允许富文本格式设置 这可以通过使用DAO检查字段的Value属性来确认。该字段的内容肯定是HTML 因此,您不需要任何RTF,但需要与富文本字段兼容的HTML。您可能会发现需要将Excel值复制到Word或PowerPoint中,然后复制到备注字段中。这有时会生成比Excel更友好的HTML
最安全的方法是自己构建HTML,尽管这很费时,但您可以控制哪些格式很重要,HTML需要多么简洁,以及使用了多少CSS。Excel的HTML往往很冗长,因此生成自己的HTML有助于最小化备注字段值的大小。我建议您尝试使用二进制数据来表示备注字段。在尝试向Access发送信息时,如何将其转换为VBA?我现在正在发送A1范围,但默认情况下,它会发送range(“A1”).Value,我认为它是纯文本而不是格式。所以我觉得问题不在访问端,而是使用适当的参数发送。我从来没有处理过文本格式,但是克服免费工具提供的限制是我的爱好。。。第一:XL单元格中的数据是否以HTML格式保存?你有没有办法阅读这个html,比如说在msgbox中显示它?这将是一个简单的方法:像
rs!备注=范围(“A1”).htmlValue
(或单元格(“A1”)
)。其他建议:将Memo
字段改为binary
字段,这样rs!BinaryField=Range(“A1”)
将(可能…)复制bit
s,而不是文本,并将(希望…)复制html标记。然后,当html位于Access表中时,将二进制数据转换为备忘录数据应该更容易。请保持我们(我)的状态:)@marlan我最终使用了一个宏将HTML标记添加到我发送的字符串中。这是非常快,没有问题。如果HTML是RTF备注字段,Access将对其进行解释,并在表格中以格式显示。真正的问题是反问题;Access发回HTML字符串后,Excel不会将格式设置放回原处。我有一个非常粗糙的宏,可以将HTML重新解释为格式化文本。。。