質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

1回答

1150閲覧

フォームに表示する画像をサブフォームで選択したレコードとリンクさせたい

st_mecha

総合スコア2

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2020/09/16 09:34

実現したいこと

サブフォーム内のレコードを選択した際に,そのレコードに含まれている画像ファイルのフルパスからフォームに画像を表示し,違うレコードを選択した際には直ちに画像が変わってほしい

###概要
サブフォームには
商品名,詳細,画像パス(短いテキスト,長いテキスト,長いテキスト)
の項目があります

サブフォームの選択したレコードをフォーム上のテキストボックスに表示するのはForm_LoadイベントでMe.txt2.ControlSource = [サブフォーム名].[Form]![詳細]と入力して対応しているのですが,フォーム上に画像を表示するイメージコントロールだとControlSourceが使えないので,Me.pic.Picture = [サブフォーム名].[Form]![画像パス]で表示しています.

しかし,この手法だとサブフォームで違うレコードをクリックしても,テキストボックスに表示される値は変わっても画像は変更されません.
画像を更新するためにボタンを作って,ボタンをクリックすれば選択しているレコードの画像に変わるのですが,可能であれば余計なクリックを増やしたくありません.

宜しくお願いいたします.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hatena19

2020/09/16 09:56 編集

Accessのバージョンは何でしょうか。 最近のバージョン(AC2007以降)ならイメージコントロールにコントロールソースはありますが。
hatena19

2020/09/16 10:09

あと、 > Form_LoadイベントでMe.txt2.ControlSource = [サブフォーム名].[Form]![詳細]と入力して対応している とのことですが、本当にこれで動作してますか。 Me.txt2.ControlSource = ”=[サブフォーム名].[Form]![詳細]" ではないですか。
st_mecha

2020/09/16 23:03

ご回答ありがとうございます. 使用しているのはAccess2013です > Form_LoadイベントでMe.txt2.ControlSource = [サブフォーム名].[Form]![詳細]と入力して対応しているとのことですが、本当にこれで動作してますか。 Me.txt2.ControlSource = ”=[サブフォーム名].[Form]![詳細]" おっしゃるとおり”=”が抜けていました.すみません.
guest

回答1

0

ベストアンサー

AC2007以降として回答します。

AC2007以降、イメージコントロールにはコントロールソースが実装されましたので、そこに画像パスを設定すれば画像が表示されます。

今回の場合は、
メインフォームのイメージコントロールのコントロールソースに下記のように設定すればいいはずです。
VBAは不要です。

=[サブフォームコントロール名].[Form]![画像パス]

テキストボックスも同様にコントロールソースの設定でOKです。

=[サブフォームコントロール名].[Form]![詳細]

投稿2020/09/16 10:00

hatena19

総合スコア33699

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

st_mecha

2020/09/16 23:07

ご回答ありがとうございます. プロパティシート内にコントロールソースに書き込むことで,できました VBAで.ControlSourceが通らなかったので誤解していました. また,今までVBAですべて書いていたため,そちらに思考が至らなかったです ありがとうございました.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問