• ベストアンサー

ACCESS2000 写真の呼び出し

商品管理テーブルとそれを元に作製した商品管理フォームがあり、そこには、商品コードと商品写真があります。ここで別に作った受注フォームの商品コードコンボからコード番号を選択すると、受注フォームの写真欄に商品管理の写真がでるようにしたいのです。何かよい方法はないでしょうか。お願いします。

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

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.3

>商品管理フォームの写真をパスで呼び出し、受注管理フォームの写真を、商品コードから商品管理の写真を連結はできないのでしょうか 商品コードから写真のパスをイメージのピクチャーに代入すれば良いので出来ます。 まず商品管理テーブルに写真パスを入力するテキスト型のフィールドを追加します。 写真パスには商品写真のフルパスで入力します。(C:\Pictures\商品1.jpgのようにフルパスで) 写真が同じフォルダに保存されていれば記述の中で指定すれば写真のファイル名(商品1.jpgのように)のみでできます。 商品コードコンボの値集合ソースを商品コードと写真のパスのフィールドにします。列数は2で列幅は1Cm;0Cmでリスト幅1Cmにすれば商品コードのみ見える状態になります。(この辺はご自分で調整してください。) フォームにイメージコントロールを配置します。(最初は何か適当に選んで配置してください。)ピクチャタイプはリンクにします。 例えば配置したイメージコントロールの名前をイメージ1とした場合、商品コードコンボの更新後処理のイベントに 【写真パスにフルパスで入力の場合】 Private Sub 商品コードコンボ_AfterUpdate() If Not IsNull(商品コードコンボ.Column(1)) Then  Me.イメージ1.Picture = 商品コードコンボ.Column(1) Else Me.イメージ1.Picture = "" End If End Sub 【写真パスに写真のファイル名で入力の場合】 Private Sub 商品コードコンボ_AfterUpdate() Dim strPass As String strPass = "C:\Picture\" 'ここで写真のフォルダを指定 If Not IsNull(商品コードコンボ.Column(1)) Then  Me.イメージ1.Picture = strPass & 商品コードコンボ.Column(1) Else Me.イメージ1.Picture = "" End If End Sub これで出来ます。"C:\Picture\"の部分は写真を保存してあるフォルダのパスを記述してください。コンボボックス名・イメージ名は作った名前に変更してください。

spooker
質問者

お礼

ついにできました。私がやりたい通りのことができました。かなり悩んでいたので、感動です。親切でわかり易い回答に感謝いたします。本当に助かりました。

その他の回答 (2)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

>商品管理テーブル・・・そこには、商品コードと商品写真があります。 商品写真はパスをテーブルに保存しているのでしょうかそれともOLEオブジェクト型のフィールドにビットマップイメージで保存しているのでしょうか。 OLEオブジェクト型のフィールドにビットマップイメージで保存している場合は連結オブジェクトフレームで表示するしかないので受注フォームのレコードソースに商品管理テーブルの商品写真を結合しなくては出来ません。 受注フォームの商品コードと商品管理テーブルの商品コードをSQLステートメント上で結合し受注フォームのレコードソースに商品写真のフィールドを追加します。 商品コードと商品管理テーブルの商品コードの結合はSQLステートメント上で商品コード同士をドラッグすれば出来ます。結合のプロパティで結合のしかたを受注テーブルの全レコードと商品管理テーブルの同じ結合フィールドのレコードにします。 連結オブジェクトを配置してコントロールソースを商品写真にします。 これで受注フォームの商品コードコンボを選択すれば商品写真が表示されるようになるはずです。 テーブルにOLEオブジェクトのフィールドを作りイメージを取り込むとファイル容量が増大するのでほとんどやりませんがたしかこれでできるはずです。 通常は画像(この場合は商品写真)のパスをテーブルで管理してイメージコントロールを配置してコンボボックスなどの更新後処理でそのイメージに画像のパスをセットさせて表示する方法を使います。 OLEオブジェクトで保存していない場合は後者でやれば出来ます。

spooker
質問者

補足

ご返事が遅くなりましてすいません。現在、OLEオブジェクトでやっていたので、今後かなり、ファイル容量が重くなるなとは、思っていましたので、パスの方法でやってみようと思います。ただ、その場合、商品管理フォームの写真をパスで呼び出し、受注管理フォームの写真を、商品コードから商品管理の写真を連結はできないのでしょうか。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

下記を参考にされては? Microsoft Access Club http://www.accessclub.jp/ 写真付フォームの作成 http://www.accessclub.jp/samplefile/samplefile_63.htm 続_写真付フォームの作成方法 http://www.accessclub.jp/samplefile/samplefile_200.htm

spooker
質問者

お礼

返答が遅れてすいません。パスを使うやり方をはじめて知りました。OLEオブジェクトでやっていたので、パスの方法でやり直そうか検討中です。ありがとうございます。

関連するQ&A

専門家に質問してみよう