• ベストアンサー

ADOでテーブルにハイパーリンクを追加したい(アドレスと表示文字列は別)

アクセスのtblのURLフィールドに 表示文字列→aaa URL→http://www.yahoo.co.jp/ を追加したいのですがうまくいきません。 (URLフィールドのデータ型はハイパーリンク型です) Sub test() Dim moji As String Dim URL As String Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Set cn = New ADODB.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "C:\Documents" & "\access.mdb" Set rs = New ADODB.Recordset rs.Open "tbl", cn, adOpenStatic, adLockPessimistic moji = "aaa" URL = "http://www.yahoo.co.jp/" rs.AddNew rs("URL") = "#" & moji & "#" rs("URL") = "#" & URL & "#" rs.Update Set rs = Nothing Set cn = Nothing End Sub を実行すると 結果は 表示文字列もアドレスも「http://www.yahoo.co.jp/」になってしまいます。(そりゃそうか) どうすれば 表示文字列→aaa URL→http://www.yahoo.co.jp/ が実現できるのでしょうか? よろしくお願いします。 (ヴァージョンは2003です)

質問者が選んだベストアンサー

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.2

No.1の方のリンク先のNo.2の者です。 先の回答でも少し触れましたが、ハイパーリンク型での「#」は日付/時刻型の 括りとは別物で、「囲い」ではなくて「区切り」になっている、ということです。 また、ご質問文中の以下のコードですが、 moji = "aaa" URL = "http://www.yahoo.co.jp/" rs.AddNew rs("URL") = "#" & moji & "#" rs("URL") = "#" & URL & "#" rs.Update これですと、「URL」フィールドが「#http://www.yahoo.co.jp/#」で 上書きされてしまって、先に代入した「#aaa#」が消えてしまいます。 No.1の方の回答の通り、一旦変数に受けるなどして、「aaa#~#」の 形にしてやってください(あくまで「#」は区切り文字なので先頭には無用です)。

lkhjlkhjlk
質問者

お礼

おお! 質問の中から飛び出して来たんですね! そうなんです。#aaa#が消えてしまいましたが rs("URL") = moji & "#" & URL & "#"でうまくいきました。 ありがとうございます。

その他の回答 (1)

  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.1

"aaa#http://www.yahoo.co.jp/#" で設定してみてください。 http://oshiete1.goo.ne.jp/qa4936098.html の#2の方が示されているURLも参照してください。

lkhjlkhjlk
質問者

お礼

できました。 なんだ。簡単ですね。 そちらも読んでみます。ありがとうございます。

関連するQ&A

専門家に質問してみよう