• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:フォーム上に画像表示したい)

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

このQ&Aのポイント
  • Access2010のフォーム上において、テーブルの画像フィールド内容に基づいて画像を表示する方法について教えてください。
  • フォームにおけるリストボックスの選択に応じて、関連する画像を表示させる方法について教えてください。
  • 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% (260/625)
回答No.2

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

すると、全ての回答が全文表示されます。
  • chayamati
  • ベストアンサー率41% (260/625)
回答No.1

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

naoto0216
質問者

補足

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

すると、全ての回答が全文表示されます。

関連するQ&A