在 Access 文本框中创建多个链接
Posted
技术标签:
【中文标题】在 Access 文本框中创建多个链接【英文标题】:Creating Multiple Links in an Access Textbox 【发布时间】:2016-07-21 23:36:05 【问题描述】:我在 Access 2016 中有一个带有文本框的表单,我需要在其中有多个以分号分隔的超链接(将动态创建)。我决定做的是在 VBA 中创建一个“超链接构造字符串”,然后将它们分配给文本框的值。所以,类似:
Me.Field.Value = link: www.google.com : "Google" & "; " & link: www.yahoo.com : "Yahoo"
...将导致它出现在文本框中:
Google; Yahoo
我的问题是,如果不将整个文本框设为单个超链接,我似乎无法弄清楚在文本框中创建单个链接的语法,这是行不通的。
我正在使用我找到的一些解决方案。我读到这会以我需要的方式创建链接,但它只是作为带有井号的文字文本出现:
"Google # www.google.com # Some Argument"
我还尝试将文本框设置为富文本,然后将值设置为包含超链接的富文本代码……但这不起作用:
"\field\*\fldinst HYPERLINK ""http://www.google.com/""\fldrslt http://www.google.com"
我还考虑过设计一个返回超链接的查询。但是,我有点想让它成为 VBA 的东西,因为我将在如何创造价值方面拥有更大的灵活性。有人有什么想法吗?
注意:我了解多个值应位于 1:M 关系数据库中。他们是。但是,该任务的要求是获取 1 实体的所有 M 值,然后以分号分隔的方式列出它们,所有这些都用作 M 实体的详细信息表的链接。
【问题讨论】:
耶!我投了赞成票!我现在觉得一切正常。 【参考方案1】:常规文本框(仅文本)不支持此功能。
富文本文本框是可能的。与名称相反,它们实际上使用 HTML 的子集,而不是 RTF。
根据here 的想法,我得到了这个工作:
Private Sub cmdInsertHyperlinks_Click()
Dim url1 As String, url2 As String
url1 = "D:\tmp\test.jpg"
url2 = "D:\tmp\test space.txt"
Me.rText.Value = "<div>" & _
"<a href = " & url1 & ">file://" & url1 & "</a>" & _
" other text between hyperlinks " & _
"<a href = " & url2 & ">file://" & url2 & "</a>" & _
"</div>"
End Sub
注意:链接线程说您必须对链接进行 URL 编码(空格到 %20 等),但至少对于我的简单测试而言,这不是必需的。
注意 2:你不能有不同的显示文本和链接 url,至少我没有让它工作。
【讨论】:
当您说“富文本文本框”时,您是指设置为富文本的标准文本框吗?我没有看到名为“富文本文本框”的控件。列表框呢?有没有办法在动态增长的列表框中列出链接? 是的,我就是这个意思。列表框将是完全不同的东西,您可以在其中动态添加项目并对单独项目的点击事件做出反应。 其实 div 和 a 标签并没有什么区别。如果您只是将值设置为“file://D:\tmp\test.jpg”而没有 div 和 a 标签,它会创建相同的链接。 @Hill,非常感谢——在文件名的开头添加 file:// 正是我所需要的。以上是关于在 Access 文本框中创建多个链接的主要内容,如果未能解决你的问题,请参考以下文章