访问富文本:支持哪些HTML子集?

13

微软Access文本框可以配置为“富文本”,允许用户应用格式,如粗体或不同的字号。在内部,“富文本”以HTML格式存储。

由于Access提供的格式选项有限,很明显只使用了HTML的子集来存储格式化文本。是否有一个列表描述了使用的HTML子集?理想情况下,我希望能获得一个标签列表,其中包含使用此Access功能格式化的文本字段中可能找到的标签。

3个回答

16
以下链接列出了Access (2007)支持的所有格式选项: http://office.microsoft.com/en-us/access-help/insert-or-add-a-rich-text-field-HA010014097.aspx 要获取HTML标签、样式等列表,建议存储具有所有格式的文本行,然后检查其HTML(例如每个格式选项一个记录-共16个)。
......我自己做了这件事,这是一份支持的HTML标记列表:
<div>,<font>,<strong>,<em>,<u>,<ol>,<ul>,<li>,<blockquote>

还有每个标签的样式/属性:

<font>: face, size, color, style(with BACKGROUND-COLOR only)    
<div>: align, dir

1
我一直在尝试让删除线起作用。据我所知,Access识别<s>标签是有效的(它不会出现在格式为富文本的报告文本框中),但它实际上并没有应用该格式。 - ptpaterson
刚刚发现   也可以用!!我很兴奋能够有额外的空格 :D - ptpaterson
3
是的。我们在这里看到一个支持单个CSS属性的单个HTML标记,该标记由于引入CSS而已经被弃用,并且等效的HTML属性用于样式。对于没有样式控制的文本块,请使用 div 而不是 p。回家休息吧,Microsoft,你又喝醉了。 - Kai
值得注意的是 &lt;&gt; 也可以用来转义 <> 字符。我认为所有字符编码都可以使用(尽管我没有进行广泛的测试)。此外,可以使用 <b><i> 替代 <strong><em> - Kai

5
如果您想要一个简单的方法来测试标签的组合,或者查看Access用于渲染的标签,您可以使用几个文本框和几行VBA代码创建一个简单的“IDE”概念。
左边的框中有源代码,右边的框中有渲染后的HTML。当您更改任一框中的文本时,两个地方都会实时显示更改。在HTML侧面,您可以使用工具栏将文本格式化为所需的样式,然后在左侧查看源代码以查看Access使用了哪些标签。

enter image description here

创建这个简单的编辑器,需要按照以下步骤进行:

  1. 创建一个空的Microsoft Access表单。
  2. 添加两个文本框,分别命名为txtSourcetxtHTML
  3. 将右侧文本框的Text Format设置为Rich Text
  4. 在两个文本框上,将Enter Key Behavior设置为New Line in Field
  5. 将两个文本框都设置为使用[Event Procedure]来处理On Change事件。

在VBA方面,添加以下几行代码以保持文本同步:

Private Sub txtHTML_Change()
    txtSource = txtHTML.Text
End Sub

Private Sub txtSource_Change()
    txtHTML = txtSource.Text
End Sub

希望能帮助到其他人! :-)

2
这显然是一个较旧的主题,但有一些需要添加的信息。
首先,据我所知,虽然BLOCKQUOTE得到支持,但我不确定是否可以使用富文本GUI控件创建它。您可以在映射到富文本控件的文本中输入它,它会以不同的方式显示(缩进)。
其次,在GUI中没有Anchor / Link项目,但如果您在富文本字段中键入URL,您将获得如下两个示例所示的链接:
<a href="http://www.stackoverflow.com">http://www.stackoverflow.com</a>
<a href="mailto:test@example.com">mailto:test@example.com</a>

在这两种情况下,我只输入了开始标签和结束标签之间的文本。
第三个问题是,除了上面提到的实体外,还支持其他HTML实体——&amp;表示和号(&),&quot;表示双引号(")。
我在美国键盘上输入了所有特殊字符到富文本控件中,以下是我得到的结果:
<div>`~ ! @ # $ % ^ &amp; * ( ) -_ = + [ { ] } \ | ; : ' &quot; , &lt; . &gt; / ?</div>

从XML/HTML的角度来看,这些是有意义的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接