フォーム上に画像を表示する方法とは?

このQ&Aのポイント
  • Access2010のフォーム上において、テーブルの画像フィールド内容に基づいて画像を表示する方法について教えてください。
  • フォームにおけるリストボックスの選択に応じて、関連する画像を表示させる方法について教えてください。
  • VBAを使用して、選択されたIDに基づいて画像を表示する方法について教えてください。
回答を見る
  • ベストアンサー

フォーム上に画像表示したい

お世話になります。 Access2010 テーブルに「画像」というフィールドがあり、データ型は「添付ファイル」です。 ※それぞれのレコードでファイルは指定済み。 ID 名前 電話番号 画像 1  AAA 090-   📎 2  BBB 090-   📎 3  CCC 090-   📎 フォームにリストボックスがあり、ID、名前、電話番号を表示しているの ですが、例えば、ID1が選択されたときに、それに該当する画像をフォーム上 に表示させたいところです。 どのようにすれば表示させることが可能でしょうか。 VBAで選択されたIDを取得して・・・ってやらなければいけないのか、 表示させるのに「連結オブジェクトフレーム」「非連結オブジェクトフレーム」 「イメージ」のどれを使うことになるのか。。いろいろやり方はあると 思うのですが、その辺がモヤモヤしていてよく分かりません。 ご教示の程、宜しくお願い致します。

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

  • ベストアンサー
回答No.4

んんんんイメージがわかない。。。 コンボボックスではなくリストボックスでしたね。ゴメン。 で、 空のフォームを一個作ります。 この中にリストボックスを作成。 値集合ソースは、SELECT ID,名前,電話番号 FROM 住所録テーブル 連結列は1にしてIDを取得するものとします。 このリストボックスの名前を仮に、リスト0 とします。 サブフォーム用のフォームを一個作成(小さくデザイン) ソースオブジェクトに住所録テーブル 画像フィールドだけを配置 フィルターに、ID = [リスト0] 読み込み時にフィルターを適用に、はい フォームは単票、画像は1個限定。 このフォームを先の空のフォームのサブフォームとして埋め込めば リストボックス リスト0 の選択に従って画像が切り替わりました。 添付画像は横着して前回回答のものを流用しています。(^^ゞ) 埋め込みサブフォームのレコードセレクタ・移動ボタンなど等を非表示にすれば うまくゆくかも? VBAなしで考えるとこんな感じでは? もっとも、VBAありでActiveXコントロールを使って添付ファイルフィールドから データを抜き出して描画させる方法は不明です。。。 また、検証は行っていませんのでボロが出るかもしれません。

naoto0216
質問者

お礼

イメージが伝わり辛くてすみません。。 また、実際に作って頂きありがとうございます。 ですが、ちょっとイメージがww 画像を用意しましたので、いったんこちらの質問は 締めさせて頂きますね。 「フォーム上に画像表示したい 2」でお待ちしております。

その他の回答 (3)

回答No.3

昔の話ですが・・・ 添付ファイル型は2007から利用できるようになりました。 それ以前では、OLEオブジェクト型でテーブルに保存するのですが jpgファイルなどでも圧縮された状態そのものではなく 展開された状態で保存されるのでmdbファイルサイズのリミット2GBが気になります。 なので、テーブルにはファイルパスだけのテキスト型にしておいて フォーム上ではActiveXコントロールのMicrosoft Forms2.0 Imageを使うとか いろいろ行っていたわけです。 2007以降は添付ファイル型が利用できるようになりましたので 以前に比べれば圧迫されることが少なくなりました。 画像ファイルのサイズが大きい・レコード数が多い・・・場合を除き 添付ファイル型でまかなえるのでは?と。 で、前置きはこれくらいにします。 いまいちやりたいことのイメージがつかめていないのですが、 単票フォームを作成、 フォームのレコードソースには「住所」?テーブル。 画像フィールドを配置。(この時点でフォームビューで絵が表示されますよね?) コンボボックスをフォームヘッダーなどに配置し 値集合ソースに SELECT ID,名前,電話番号 FROM 住所; 値集合タイプ テーブル/クエリ 連結列に1 コンボボックスの更新後処理に フォームのレコードソースの書き換え Private Sub コンボ5_AfterUpdate() Dim Ctl As Control, i As Long Me.RecordSource = "select 画像 from 住所 where ID=" & コンボ5 For Each Ctl In Me.Controls   If TypeName(Ctl) = "Attachment" Then     Ctl.Visible = False   End If Next For i = 1 To Me!graph1.AttachmentCount   Me.Controls("graph" & i).CurrentAttachment = i - 1   Me.Controls("graph" & i).Visible = True   'Me!graph2.CurrentAttachment = 0 Next Me.Requery '念のため End Sub みたいなのは没? なお、画像(上記ではgraph)フィールドを複数配置し 名前をgraph1、graph2、graph・・・・としておけば ミスコンみたいに顔写真・全身・・が一括して表示されます。 添付ファイル型フィールドに複数登録されている場合は インデックスが文字コード順になるようです。 任意な並び替え方法は不明。。。 以上は単票フォームの場合に限ります。

naoto0216
質問者

補足

NotFound404さま いつもご回答ありがとうございます。 イメージ的には、名簿+顔写真って感じです。 リストボックスにIDや名前、住所が表示されており、 選択すると該当する人の顔写真が表示されるみたいな。 ID 名前 電話番号 画像 1  AAA 090-   📎 ←AAAの顔写真 2  BBB 090-   📎 ←BBBの顔写真 3  CCC 090-   📎 ←CCCの顔写真 というように、すでに画像とは紐づいているので VBAを使わなくても表示することが可能では?と 思った次第です。 で、使ったことありませんが「連結オブジェクトフレーム」 ってやつを使えばそこに画像を表示できるのかなと。。 「連結オブジェクトフレーム」について調べてみましたが いまいち使い方がわからず。 そもそも、「連結オブジェクトフレーム」が今回やりたいこと と関係あるのかどうかも分かってない状況です。 なお、フォームの単票形式及び帳票形式でテーブルのそれぞれの フィールドを設置し、画像を表示できることは理解しております。 今回は「リストボックスで選択したときに、該当する画像を 表示させたい」ってことになります。

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.2

こちらACCESS2010を使っています 画像フィールドの書式タグの最上段にある表示方法プロパティーは 画像/アイコン アイコン クリップ の3つの選択肢がありますウィザードをでフォームをさくせいすると 画像/アイコンとなり、ボックスのサイズに合せて表示されます。

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.1

画像ファイルは別のフォルダーに保存されていますね VBAは不要です フォームを開いて、画像ボックス📎をダブルクリックで画像ファイルを追加します 一つの 📎に複数の画像を追加できるようです。 フォームを開くとそのうちの一つが表示され、この画像をダブルクリックですると残りはファイル名のリストが表示され、この一つを選んで開くと別窓で表示されます。

naoto0216
質問者

補足

chayamatiさま ご回答ありがとうございます。 >※それぞれのレコードでファイルは指定済み 質問が分かりづらくてすみません。 ご回答頂いた手順で既に画像は追加済みです。 リストボックスで選択時に、該当の画像をフォーム上に 表示させる方法が知りたいのです。

関連するQ&A

  • ネットショップのなかで商品画像を並べて表示させています。

    ネットショップのなかで商品画像を並べて表示させています。 画像ファイル名の指定は、商品数が多いためひとつひとつ確認しながら指定するのではなく、 aaa_1.jpg aaa_2.jpg aaa_3.jpg aaa_4.jpg bbb_1.jpg bbb_2.jpg bbb_3.jpg bbb_4.jpg ccc_1.jpg ccc_2.jpg ccc_3.jpg ccc_4.jpg と決まった法則で記載しています(aaa_1の_1はaaaという商品の1枚目、_2は2枚目を意味します)。 ところが商品によって画像数が違うため、たとえばbbbという商品の写真が3枚しかない場合は、当然bbb_4と指定したところが × と画像がないことが表示されて見栄えがよくありません。 これを避けるため、画像がない場合は空白を表示させるか、何か別の写真たとえば画像準備中と記載のある写真を統一的に載せる方法はありませんか?

  • phpでのメールフォームの作成について

    HTMLで <form action="mail.php" method="post"> <input name="aaa" type="checkbox" id="aaa" value="AAA" checked> <input name="bbb" type="checkbox" id="bbb" value="BBB" checked> <input name="ccc" type="checkbox" id="ccc" value="CCC" checked> </form> として、次に進むボタンを押すとmail.phpに飛び mail.phpでは、チェックされたものだけを表示したいのですが、どうすればよいでしょうか? もし、AAAとBBBが選ばれたら あなたが選んだのは AAA、BBBです。 と表示したいです。そのあとにメールフォームを続けるつもりです。 ご教授よろしくお願いします。

    • 締切済み
    • PHP
  • フォームへの画像の挿入

    Access2000を勉強し始めた初心者です。 フォームに写真を挿入、表示する方法がよくわかりません。 オブジェクトフレームクリック→挿入→ファイルからで 目的のgif画像を挿入しても、オブジェクトフレームには ○×.gif と表示されるだけで、写真の表示がされません。 また、挿入→ファイルから、で写真の入っているフォルダを 開いても、gifファイルが、表示されるときと表示されないときが あります。 何故でしょうか。 どうぞよろしくお願いします。

  • 画像ファイル名の付け方

    FFFTPでエックスサーバーにアップロードしたいのですが、その際画像ファイル名は半角英数にすべしということですが、下記諸例の是非について教えて下さい。 (1)aaa bbb ccc (2)aaa_bbb_ccc (3)aaa-bbb-ccc 宜しくお願いします。

  • PHPでのフォームの受け渡しについて

    PHPの勉強中の者です。 PHPでフォームの受け取りの時に入力データのIDを受け取り、出力させるやり方について模索しています。 具体的には以下の通りです。 例えば、セレクトフォームのIDをそれぞれAAAとBBBにします。 ーーーーーーーーーー [フォーム内] <form action="file.php" method="post" name=""> <select name="data1" size="1"> <option value="0">選択する</option> <option value="100" id="AAA" >aaa</option> <option value="200" id="BBB" >bbb</option> </select></form> ーーーーーーーーーー [出力結果] AAA は aaa です。 BBB は bbb です。 ーーーーーーーーーー 選択された aaa の受け取りは、 $data1[] = $_POST['data1']; これで出来ると思いますが、idを受け取り出力する方法が分からないのです。 どなたかわかる方ご教授お願い出来ますでしょうか? 宜しくお願いします。

    • 締切済み
    • PHP
  • フォームに入力後、別のフォームに値を表示

    すみません。教えて頂けないでしょうか?(初心者です) <input type="text" name="a" id="aaa" size=20>  ↓ <input type="text" name="b" id="bbb" size=20>  ↓ <input type="text" name="c" id="ccc" size=20>  ↓ このような感じで作成し、aとbのフォームに値が何か 入力されたら自動的に、例えばaとbの値を足してcのフォームに その結果を表示する様にしたいのですが、記述の仕方が なかなか見つけられません。

    • 締切済み
    • PHP
  • エクセルの任意のシートをフォームに表示したい。

    いつも参考にさせていただいています。 宜しくお願いします。 Access2002,Excel2002でタイトルのようなことを 実現しようと思ってます。 現在やっていることは、 フォームに「非連結オブジェクトフレーム」を用意して エクセルファイルを表示させているのですが 任意のシートを表示させたいと思っています。 手動で任意のシートをアクティブにしてフォームを再表示すると アクティブなシートがオブジェクトに表示されるのですが、、 VBAの操作によりシートをアクティブにする ことは可能でしょうか。 なにかお気づきの方が居られましたら ご教授宜しくお願いします。

  • 全く同じソースなのに、一方で背景画像が表示されない。

    現在、開発用サーバーと公開用サーバーに分けてサイトを作成しているのですが、 開発用サーバーでは表示されている画像が、公開用サーバーだと表示されません。 該当箇所は以下のコードです。 開発用のファイルを公開用にコピーしているので、同一のコードを使用しています。 <div id="aaa">  <div id="bbb">   <div id="ccc"></div>    <div id="ddd">ここにメッセージ</div>  </div> </div> CSSで背景を指定しています。 #ccc { background-image:url(../img/img.gif); background-repeat:no-repeat; width:600px; height:32px; } cccのbackground-imageが公開用だと表示されません。 ×となっているわけでは無く、何も表示されていません。 画像ファイルのパスも開発用と同一です。 試しに背景画像では無く背景色を指定したところ、表示されました。 画像ファイルに問題があるのか、公開用サーバーの設定等に問題あるのか、わかりかねています。 アドバイスよろしくお願いします。

    • ベストアンサー
    • HTML
  • 大量の画像ファイルを50ずつに分けたい。

    ※PC初心者の為記載がおかしい箇所がありましたら申し訳ありません。 10000件の画像(jpg)ファイルが一括で入ったフォルダが1つあり、それを50件ずつのフォルダに分けたいのですが自動でできる方法等ありますでしょうか。フリーソフトなど探したのですが見つけることができませんでした。 フォルダ内は下記のように基本の画像に添付の画像が付いている場合があり、名前の付け方は統一されていますが添付の枚数にかかわらず一緒になっています。(枝番号_1が基本の画像で_2~が添付画像です。AAAの_1と_2は同じ組となります。) これを組ごと(例:AAAは_1と_2で1組)に50組ずつに分けたいのですが画像数が多く困っております。 AAA_1 AAA_2 BBB_1 CCC_1 CCC_2 CCC_3 CCC_4 DDD_1 DDD_2 何か良い方法をご存知の方、宜しくお願い致します。

  • Webサイトの階層化のしかたについて

    弱小企業でWebサイトの担当をしていますが、全くの独学なので基本的な事が分かっておりませんので宜しくお願いします。 先日セミナーに行ったところ、サイトをテーマ毎に階層化しなさいと説明をうけましたが、やり方がわかりません。 階層化にすると「http://AAA.com/BBB/CCC.html」となり、「/」で区切られてページ(アドレス)が表示される事ですよね。 現在は全て「http://AAA.com/BBB.html」、「http://AAA.com/CCC.html」と表示されています。 現在はhtmlファイルはメインのフォルダ内に全て入れていて、cssファイル、jsファイル、画像ファイルはメインフォルダの中にcssフォルダ、jsフォルダ、画像フォルダを作って入れています。 CCC.htmlファイルをどこに置けば良いのでしょうか。 メインフォルダの中に例えばBBBフォルダを作ってその中にCCC.htmlファイルを入れると言う事なんでしょうか。 そうするとBBB.htmlファイルを見るときは「http://AAA.com/BBB.html」になりますし、CCC.htmlファイルを表示するときは「http://AAA.com/BBB/CCC.html」になりますよね。 同様に「http://AAA.com/BBB/CCC/DDD.html」としたい場合は、BBBフォルダ内にCCCフォルダを作ってDDD.htmlファイルを入れておくという事なんでしょうか。 極基本的な質問ですが、ご回答宜しくお願い致します。

    • ベストアンサー
    • HTML

専門家に質問してみよう