首页 文章

在Access文本框中创建多个链接

提问于
浏览
2

我在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}}"

我还考虑过设计一个返回超链接的Query . 但是,我有点想把它变成VBA,因为我在创建 Value 方面会有更大的灵活性 . 有没有人有任何想法?

Note: 我知道多个值应该在1:M关系数据库中 . 他们是 . 但是,任务的要求是获取1个实体的所有M值,然后以分号,分隔的方式列出它们,这些都作为M实体的Details表的链接 .

1 回答

  • 1

    常规文本框(仅限文本)不支持此功能 .

    Rich文本框可以使用 . 与名称相反,它们实际上使用了 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:你不能有不同的显示文字和链接网址,至少我没有得到它的工作 .

相关问题