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

问题描述 投票:2回答:2

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

我写了一个VBA程序,它连接项富文本字段并将其提供到我的表单上的独立TextBox控件(Textbox.Text =结果字符串)但它不起作用,我收到一条错误消息说“此属性参数也是长”。如果我尝试将单个文本字段输入到Textbox控件中,我会收到另一个错误,指出“无法更新记录集”,我不明白,这是什么记录集?

每个项目字段通常都是这样的(我使用方括号而不是“<”和“>”,因为否则显示帖子不对)[div] [font ...]内容[/ font] [/ div ]“,同时包含”[em]“标签。

在我的问题面前,我有很多问题:

1)如何将HTML字符串提供给独立的Textbox控件?

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

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

您可能会回答我可能会使用显示构成文章的不同项目的子窗体。是的,但是每个项目都不可能有一个可变的高度,整篇文章的阅读非常麻烦

感谢您提供的任何建议

vba ms-access access-vba richtext
2个回答
1
投票

它对我有用,功能简单:

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()的未绑定文本框。

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


1
投票

文本框的“富文本”功能仅适用于简单文本。

我们使用Web浏览器控件显示更多的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
© www.soinside.com 2019 - 2024. All rights reserved.