人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: MitcheyK
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3
●1000ポイント

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】


MitcheyKさんのコメント
早速ありがとうございます。やってみたところ、 Img.setAttribute("src", URL) のところで構文エラーになてしまい、 もう少し考えてみます。私のレベルが低いのだと思いますが、 何か追加しないといけない記述などがあれば教えていただけますでしょうか。すみません。

a-kuma3さんのコメント
回答では端折りましたが、変数 Img の Dim 宣言ってしてます? >|vb| Dim Img As HtmlElement ||<

MitcheyKさんのコメント
すみませんありがとうございます。していませんでしたので追加しましたが、今度は Dim Img As HtmlElement のところで「ユーザ定義型は定義されていません」というコンパイルエラーになります。 引き続き違う方法でも結構ですのでお知恵を拝借できるとありがたいです。 ありがとうございます。

a-kuma3さんのコメント
参照設定をしましょう。 HTMLElement は「Microsoft HTML Object Library」に含まれています。

MitcheyKさんのコメント
ありがとうございます。 参照設定というのを調べて「Microsoft HTML Object Library」にチェックを入れましたが、状況は変わらず上記のコンパイルエラーになります。何か原因は考えられますでしょうか。すみません。

a-kuma3さんのコメント
年を越しましたが、状況は変わらず、ですか? MicroSoft Internet Contorls とか Microsoft Browser Helpers とかは参照設定に追加されてますか?

MitcheyKさんのコメント
ありがとうございます。状況変わらずです。 InternetControlは参照していますがHelperはしていないので後でやってみます。何とか乗り越えたいです。

a-kuma3さんのコメント
インターフェースの方が取られるのかなあ。 HtmlElement ではなく、<u style="color:red;">I</u>HtmlElement だとどうなりますか? >> Dim Img As IHtmlElement <<

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>" & _ "<style type='text/css'>" & _ "img {zoom:25%} " & _ "body {margin:0; padding:0;}" & _ "</style>" & _ "</head>" & _ "<body>" & _ "<img id='goods_image' src='" & URL & "'>" & _ "</body>" WebBrowser4.Document.body.Scroll = "no" End If End Sub
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ