2016-07-21 7 views
2

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

Me.Field.Value = {link: www.google.com : "Google"} & "; " & {link: www.yahoo.com : "Yahoo"} 
は...テキストボックスに、このビーイングにつながる:

GoogleYahoo

私の問題は、テキストボックス全体を1つのハイパーリンクにすることなく、テキストボックス内の個々のリンクを作成する構文を理解できないようです。

私はいくつかの解決策を見つけました。私は、これは私が必要な方法でリンクを作成することを読んで、それだけでシャープ記号のようにリテラルテキスト伝わってくる:

"Google # www.google.com # Some Argument" 

私もリッチテキストにテキストボックスを設定してみました、そして含まれるように値を設定しますリッチテキストハイパーリンクのコード...それは働いていない:

"{\field{\*\fldinst HYPERLINK ""http://www.google.com/""}{\fldrslt http://www.google.com}}" 

を私はまた、ハイパーリンクを返しますクエリのデザインを考えました。しかし、私はVBAのものにしたいと思っていました。なぜなら、私が値をどのように作成するかに、より柔軟に対応できるからです。誰にもアイデアはありますか?

注:私は1:Mリレーショナルデータベースに複数の値を入れる必要があることを理解しています。彼らです。しかし、タスクの要件は、1エンティティのM値をすべて取得し、MエンティティのDetailsテーブルへのリンクとして機能する、セミコロンで区切られた形式でリストすることです。

+0

YAY!私はupvoteを得た!私は今、すべて合法だと感じます。 – Hill

答えて

1

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

リッチテキストボックスでも可能です。名前とは対照的に、実際にはHTMLのサブセットを使用し、RTFは使用しません。ことを、リンクされたスレッドは、あなたが(%20などへのスペース)のリンクをURLエンコードしなければならないと言いますが、少なくとも私の簡単なテストのために:

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 

注:hereからアイデアを

私はこの作業を得ました必要ではなかった。

注2:違う表示テキストとリンクURLを使用することはできません。少なくとも、動作させることはできませんでした。

+0

「リッチテキストテキストボックス」とは、リッチテキストに設定された標準テキストボックスを意味しますか?私は "リッチテキストのテキストボックス"と呼ばれるコントロールが表示されません。リストボックスはどうですか?動的に成長するリストボックスにリンクをリストする方法はありますか? – Hill

+0

はい、そうです。リストボックスはまったく異なるものです。そこにアイテムを動的に追加し、別々のアイテムのクリックイベントに反応することができます。 – Andre

+0

実際、divとタグは実際には何の違いもありません。 divとタグなしで値を "file:// D:\ tmp \ test.jpg"に設定するだけで、まったく同じリンクが作成されます。 – Hill

関連する問題