2

Access 2016 に、複数のセミコロンで区切られたハイパーリンク (動的に作成される) が必要なテキスト ボックスを含むフォームがあります。私がやろうと決めたのは、VBA で「ハイパーリンク構成文字列」を作成し、それらをテキスト ボックスの値に割り当てることです。したがって、次のようなものです:

Me.Field.Value = {link: www.google.com : "Google"} & "; " & {link: www.yahoo.com : "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 エンティティの詳細テーブルへのリンクとして機能します。

4

1 に答える 1

1

通常のテキストボックス (テキストのみ) はこれをサポートしていません。

リッチ テキスト テキストボックスで可能です。名前とは対照的に、実際には RTF ではなくHTMLのサブセットを使用しています。

ここからのアイデアで、私はこれを機能させました:

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 を使用することはできません。少なくとも、私はそれを機能させることができませんでした。

于 2016-07-22T06:18:23.843 に答える