今回は、いただいた質問にお答えします。
「アクセスのフォームでWEBの画像をリンクして表示させようと
思うのですが、WEBで調べても分かりません。
どうしたらいいのでしょうか。」
ローカル(自分のパソコン)に保存してある画像を表示するのではなく、
Web上の画像というところが、面白いですね。
サンプルとして、以下のようなフォームを作成しました。
赤枠の中をご覧ください。
画像というラベルの付いたテキストボックスには、画像のパスが表示されています。
自分のパソコンの中に保存されている画像ではありませんよ。
ネット上に存在する画像のURLなのです。
下に表示されている実際の画像は、上記のネット上の画像を参照しています。
したがって、インターネットに接続していないと、画像は表示されませんし、
接続しているパソコンならば、どのパソコンでも、きちんと画像が表示されます。
(もちろん、Accessが必要ですよ)
このフォームのもとになるテーブルは、3つのフィールドで構成されています。
ID(オートナンバー型)
キーワード(テキスト型)
画像(テキスト型)
とすると、あれれ?画像を表示しているコントロールは何でしょうか?
実際に表示されている画像は、もとになるテーブルのフィールドと連結されていません。(非連結コントロールです)
実は、画像というフィールドのデータを使ってネットから画像を読み込んで表示しているのです。
つまり、このコントロールを挿入配置したからといって、すぐに画像が表示されるわけではありません。
VBAによるコードの記述が必要となります。
しかし、真っ黒な背景にぼけたWindowsのロゴマーク・・・このコントロールは何者でしょう?
このコントロールは、ウェブブラウザーといいます。
このコントロールの挿入方法をご紹介します。
■Access2003の場合
「挿入」→「ActiveXコントロール」とクリックします。
(下の画像では、既に謎のコントロールが挿入されていますが、
皆さんが操作する時には、もちろん、まだフォーム上に存在していませんよ)
「ActiveXコントロールの挿入」ダイアログボックスが表示されます。
一覧の中から、「Microsoft WEB Browser」を選択します。
「OK」をクリックしてください。
あとは、フォーム上の任意の位置でドラッグしてください。
■Access2007の場合
フォームをデザインビューで表示すると、デザインタブが出現します。
そのリボンの中から、「ActiveXコントロールの挿入」をクリックします。
(下の図の赤枠の中)
一応、拡大しておきます。
「ActiveXコントロールの挿入」ダイアログボックスが表示されます。
一覧の中から、「Microsoft WEB Browser」を選択します。
「OK」をクリックしてください。
自動的に左上に配置されます。任意の位置に移動して、サイズ変更してください。
挿入したActiveXコントロールの名前を確認しておきます。
コントロールを選択したら、プロパティシートを表示します。(F4キーを押してください)
その他タブの「名前」プロパティをご覧ください。
今回は、WebBrowser0 という名前です。
名前は、自由に変更できますので、好きな名前で構いませんが、
その名前を、このあと、VBAのコーディングの際に使用しますので、
よく覚えておいてください。
それでは、いよいよVBAでコードを記述します。
フォームセレクタを選択してから(①を参照)、
プロパティシートの「データ」タブの「レコード移動時」の右端をクリックします。
すると、Visual Basic Editorが起動します。
カーソルの位置に以下を参考にコードを記述してください。
DisplayWeb というのは、実は、サブルーチンです。
このプロシージャを以下の通り、追加してください。
[画像] というのは、画像フィールドの値という意味です。
表示するには、WebBrowserオブジェクトのNavigate メソッドを使います。
引数に、URL(ネット上のアドレス)を指定します。
つまり、画像のパスを使って、ネット上の画像を読み込みなさいという内容になります。
なお、画像フィールドのデータが存在しないと、以前読み込んだ画像がそのまま残ってしまうので、
その対策として、WebBrowserコントロールの表示・非表示を切り替えています。
なお、画像フィールドにURLが入力されたら、直ちに、画像を表示したいので、
以下のコードも記述しておきます。
(画像テキストボックスのプロパティシートのイベントの「更新後処理」の右端をクリックします)
サブルーチンというのは、このように複数のイベントで呼び出される場合に有効ですね。
一応、画像も載せておきます。
以上で、完成です。
WebBrowserの面白いのは、ローカルに保存された画像も、ちゃんと読み込むところです。
また、画像パスにWebページのURLを入力すると、もちろん、Webページが表示されますよ。
(画像に限らないということです)
おまけ:
Web上の任意の画像のURL(アドレス)を調べる方法について
画像の真ん中で右クリックしてください。
表示されたメニューの中のプロパティをクリックしてください。
プロパティ画面の中にアドレスがありますので、
選択して、コピーしてご使用ください。
だい
「アクセスのフォームでWEBの画像をリンクして表示させようと
思うのですが、WEBで調べても分かりません。
どうしたらいいのでしょうか。」
ローカル(自分のパソコン)に保存してある画像を表示するのではなく、
Web上の画像というところが、面白いですね。
サンプルとして、以下のようなフォームを作成しました。
赤枠の中をご覧ください。
画像というラベルの付いたテキストボックスには、画像のパスが表示されています。
自分のパソコンの中に保存されている画像ではありませんよ。
ネット上に存在する画像のURLなのです。
下に表示されている実際の画像は、上記のネット上の画像を参照しています。
したがって、インターネットに接続していないと、画像は表示されませんし、
接続しているパソコンならば、どのパソコンでも、きちんと画像が表示されます。
(もちろん、Accessが必要ですよ)
このフォームのもとになるテーブルは、3つのフィールドで構成されています。
ID(オートナンバー型)
キーワード(テキスト型)
画像(テキスト型)
とすると、あれれ?画像を表示しているコントロールは何でしょうか?
実際に表示されている画像は、もとになるテーブルのフィールドと連結されていません。(非連結コントロールです)
実は、画像というフィールドのデータを使ってネットから画像を読み込んで表示しているのです。
つまり、このコントロールを挿入配置したからといって、すぐに画像が表示されるわけではありません。
VBAによるコードの記述が必要となります。
しかし、真っ黒な背景にぼけたWindowsのロゴマーク・・・このコントロールは何者でしょう?
このコントロールは、ウェブブラウザーといいます。
このコントロールの挿入方法をご紹介します。
■Access2003の場合
「挿入」→「ActiveXコントロール」とクリックします。
(下の画像では、既に謎のコントロールが挿入されていますが、
皆さんが操作する時には、もちろん、まだフォーム上に存在していませんよ)
「ActiveXコントロールの挿入」ダイアログボックスが表示されます。
一覧の中から、「Microsoft WEB Browser」を選択します。
「OK」をクリックしてください。
あとは、フォーム上の任意の位置でドラッグしてください。
■Access2007の場合
フォームをデザインビューで表示すると、デザインタブが出現します。
そのリボンの中から、「ActiveXコントロールの挿入」をクリックします。
(下の図の赤枠の中)
一応、拡大しておきます。
「ActiveXコントロールの挿入」ダイアログボックスが表示されます。
一覧の中から、「Microsoft WEB Browser」を選択します。
「OK」をクリックしてください。
自動的に左上に配置されます。任意の位置に移動して、サイズ変更してください。
挿入したActiveXコントロールの名前を確認しておきます。
コントロールを選択したら、プロパティシートを表示します。(F4キーを押してください)
その他タブの「名前」プロパティをご覧ください。
今回は、WebBrowser0 という名前です。
名前は、自由に変更できますので、好きな名前で構いませんが、
その名前を、このあと、VBAのコーディングの際に使用しますので、
よく覚えておいてください。
それでは、いよいよVBAでコードを記述します。
フォームセレクタを選択してから(①を参照)、
プロパティシートの「データ」タブの「レコード移動時」の右端をクリックします。
すると、Visual Basic Editorが起動します。
カーソルの位置に以下を参考にコードを記述してください。
Private Sub Form_Current() DisplayWeb End Sub
DisplayWeb というのは、実は、サブルーチンです。
このプロシージャを以下の通り、追加してください。
Private Sub DisplayWeb()
If Not IsNull([画像]) Then
WebBrowser0.Visible = True
WebBrowser0.Navigate [画像]
Else
WebBrowser0.Visible = False
End If
End Sub
[画像] というのは、画像フィールドの値という意味です。
表示するには、WebBrowserオブジェクトのNavigate メソッドを使います。
引数に、URL(ネット上のアドレス)を指定します。
つまり、画像のパスを使って、ネット上の画像を読み込みなさいという内容になります。
なお、画像フィールドのデータが存在しないと、以前読み込んだ画像がそのまま残ってしまうので、
その対策として、WebBrowserコントロールの表示・非表示を切り替えています。
なお、画像フィールドにURLが入力されたら、直ちに、画像を表示したいので、
以下のコードも記述しておきます。
(画像テキストボックスのプロパティシートのイベントの「更新後処理」の右端をクリックします)
Private Sub 画像_AfterUpdate()
DisplayWeb
End Sub
サブルーチンというのは、このように複数のイベントで呼び出される場合に有効ですね。
一応、画像も載せておきます。
以上で、完成です。
WebBrowserの面白いのは、ローカルに保存された画像も、ちゃんと読み込むところです。
また、画像パスにWebページのURLを入力すると、もちろん、Webページが表示されますよ。
(画像に限らないということです)
おまけ:
Web上の任意の画像のURL(アドレス)を調べる方法について
画像の真ん中で右クリックしてください。
表示されたメニューの中のプロパティをクリックしてください。
プロパティ画面の中にアドレスがありますので、
選択して、コピーしてご使用ください。
だい