连接富文本字段 (HTML) 并在 Access 表单上显示结果

Concatenate Rich Text Fields (HTML) and display result on Access form

我有一个处理 "articles" 和 "items" 的访问数据库,这些都是文本内容。一篇文章由几个项目组成。每个项目都有一个富文本字段,我希望通过连接其项目的所有富文本字段来显示文章的文本内容。

我写了一个 VBA 程序,它连接项目富文本字段并将其提供到我的表单上的独立 TextBox 控件中(Textbox.Text = 结果字符串)但它不起作用,我收到一条错误消息说 "this property parameter is too long"。 如果我尝试将单个文本字段输入文本框控件,我会收到另一个错误,指出 "Impossible to update the recordset" 我不明白,这是什么记录集?

每个项目字段通常是这样的(我使用方括号代替“<”和“>”,否则 post 的显示不正确)[div][ font ...]Content[/font] [/div]”,还包含“[em]”标签。

在我的问题面前,我有几个疑问:

1) 如何将 HTML 字符串输入到独立的文本框控件中?

2) 连接这些 HTML 字符串是否可以,或者我是否应该修改标签,例如只有一个“[div]”块而不是连续几个(抑制中间 div 标签) ?

3) 我应该使用什么控件来显示结果?

你可能会回答说我还不如使用一个子表单来显示组成一篇文章的不同项目。可以,但是不可能每个item都有可变高度,整篇文章阅读起来很繁琐

感谢您提供的任何建议

文本框的 "rich text" 功能仅适用于简单文本。

我们使用 网络浏览器控件 来显示大量 HTML 文本,并像这样加载它:

Private Sub Form_Current()

    LoadWebPreview

End Sub


Private Sub HtmlKode_AfterUpdate()

    LoadWebPreview

End Sub


Private Sub LoadWebPreview()

    ' Let the browser control finish the rendering of its standard content.
    While Me!WebPreview.ReadyState <> acComplete
        DoEvents
    Wend

    ' Avoid the pop-up warning about running scripts.
    Me!WebPreview.Silent = True

    ' Show body as it would be displayed in Outlook.
    Me!WebPreview.Document.body.innerHTML = Me!HtmlBody.Value

End Sub

它对我有用,功能简单:

Public Function ConcatHtml()

    Dim RS As Recordset
    Dim S As String

    Set RS = CurrentDb.OpenRecordset("tRichtext")
    Do While Not RS.EOF
        ' Visually separate the records, it works with and without this line
        If S <> "" Then S = S & "<br>"

        S = S & RS!rText & vbCrLf
        RS.MoveNext
    Loop
    RS.Close

    ConcatHtml = S

End Function

和一个带有控制源的未绑定文本框 =ConcatHtml()

在你的情况下,你必须添加文章外键作为参数来限制你连接的项目记录。