- ベストアンサー
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です)
- みんなの回答 (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#~#」の 形にしてやってください(あくまで「#」は区切り文字なので先頭には無用です)。
その他の回答 (1)
- 30246kiku
- ベストアンサー率73% (370/504)
"aaa#http://www.yahoo.co.jp/#" で設定してみてください。 http://oshiete1.goo.ne.jp/qa4936098.html の#2の方が示されているURLも参照してください。
お礼
できました。 なんだ。簡単ですね。 そちらも読んでみます。ありがとうございます。
お礼
おお! 質問の中から飛び出して来たんですね! そうなんです。#aaa#が消えてしまいましたが rs("URL") = moji & "#" & URL & "#"でうまくいきました。 ありがとうございます。