我有一个访问数据库,处理“文章”和“项目”,这些都是文本的东西。一篇文章由几个项目组成。每个项目都有一个富文本字段,我希望通过连接其项目的所有富文本字段来显示文章的文本内容。
我写了一个VBA程序,它连接项富文本字段并将其提供到我的表单上的独立TextBox控件(Textbox.Text =结果字符串)但它不起作用,我收到一条错误消息说“此属性参数也是长”。如果我尝试将单个文本字段输入到Textbox控件中,我会收到另一个错误,指出“无法更新记录集”,我不明白,这是什么记录集?
每个项目字段通常都是这样的(我使用方括号而不是“<”和“>”,因为否则显示帖子不对)[div] [font ...]内容[/ font] [/ div ]“,同时包含”[em]“标签。
在我的问题面前,我有很多问题:
1)如何将HTML字符串提供给独立的Textbox控件?
2)连接这些HTML字符串是否可以,或者我应该修改标签,例如只有一个“[div]”块而不是连续几个(抑制中间div标签)?
3)我应该使用什么控件来显示结果?
您可能会回答我可能会使用显示构成文章的不同项目的子窗体。是的,但是每个项目都不可能有一个可变的高度,整篇文章的阅读非常麻烦
感谢您提供的任何建议
它对我有用,功能简单:
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()
的未绑定文本框。
在您的情况下,您必须添加文章外键作为参数来限制您连接的项目记录。
文本框的“富文本”功能仅适用于简单文本。
我们使用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