Access フォーム上で表示したWEB上の画像をレコード移動時に更新したい


下記のように C1データ というテーブルの 商品画像URL 1 というフィールドの値を
URL として受け取りフォーム上で表示したいのですが、レコードを移動しても最初の画像が表示され更新されません。
更新された URL の値を WebBrowser に渡すにはどうしたらよいのでしょうか。お願いいたします。


Private Sub Form_Current()

Dim oRS As DAO.Recordset
Dim URL As Variant

With Application.CurrentDb
Set oRS = .OpenRecordset("C1 データ", dbOpenDynaset)

URL = oRS.Fields("商品画像URL 1").Value
oRS.Close

Set oRS = Nothing

End With

End Sub


Private Sub WebBrowser4_DocumentComplete(ByVal pDisp As Object, URL As Variant)

If URL <> "about:blank" Then
pDisp.Document.write "<head>" & _
                   (中略)
"<img src='" & URL & "'>" & _
"</body>"
End If

End Sub

回答の条件
  • 1人10回まで
  • 登録:
  • 終了:2016/01/05 06:05:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:a-kuma3 No.1

回答回数4973ベストアンサー獲得回数2154

ポイント1000pt

WebBrowser コントロールの Document プロパティから IMG 要素を取得して src 属性を変更します。
例えば、IMG に id 属性を設定して、getElementById メソッドで設定する場合は、こんな感じになると思います。

URL = oRS.Fields("商品画像URL 1").Value
oRS.Close

Set oRS = Nothing

Set Img = WebBrowser4.Document.getElementById("goods_image")
Img.setAttribute("src", URL)

	...


pDisp.Document.write "<head>" & _
                   (中略)
"<img id='goods_image' src='" & URL & "'>" & _


【参考URL】

他7件のコメントを見る
id:a-kuma3

インターフェースの方が取られるのかなあ。
HtmlElement ではなく、IHtmlElement だとどうなりますか?

Dim Img As IHtmlElement

2016/01/02 17:46:08
id:MitcheyK

Dim Img As IHTMLElement
にするとコンパイルエラーはなくなりますが
Img.setAttribute("src", URL)
のところで構文エラーになるようです。


Private Sub Form_Current()

Dim oRS As DAO.Recordset
Dim URL As Variant
Dim Img As IHTMLElement




With Application.CurrentDb
Set oRS = .OpenRecordset("C1 カラデータ", dbOpenDynaset)


URL = oRS.Fields("商品画像URL 1").Value
oRS.Close

Set oRS = Nothing

Set Img = WebBrowser4.Document.getElementById("goods_image")
Img.setAttribute("src", URL)


End With

End Sub


Private Sub WebBrowser4_DocumentComplete(ByVal pDisp As Object, URL As Variant)

If URL <> "about:blank" Then
pDisp.Document.write "<head>" & _
"" & _
"</head>" & _
"<body>" & _
"" & _
"</body>"
WebBrowser4.Document.body.Scroll = "no"

End If


End Sub

2016/01/02 22:56:20

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません