タイムマシーンがあったら、過去と未来どちらに行く?

画像を表示させた商品管理フォームを作りたいのですが、商品にリンクした画像をどうやって表示していいのかわかりません。
(商品のレコードをクリックする毎にその商品の画像
が表示できるようにしたいです)

下記のテーブルがあります。画像と商品は商品コードでつなぎます。

(1)商品テーブル
商品コード 例)A0001
商品名   例)ER-01

(2)画像テーブル
商品コード 例)A0001 
画像ファイル名 例)Photo0001.jpg
パス名 例)C\Photo\Photo0001.jpg

画像はリンクにするのか、埋め込みにするのか
もわからない状態です。
どうぞよろしくおねがいします。

A 回答 (1件)

フォームにイメージコントロールで表示するか非連結オブジェクトで表示するかのどちらかになりますが


画像テーブルに画像のフルパスが入っているのであればリンクで表示する方が簡単です。
イメージを埋め込むとデータベースのサイズが増大して動作が遅くなる事もあります。
フォームのソースに画像テーブルの商品名・パス名もSQLステートメントやクエリで追加しておきます。
フォーム上にパス名のコントロールを配置します。パスを見せたくない場合は可視をいいえにして見えなくします。
イメージコントロールの名前をPhoto1とすると
フォームのプロパティで[レコード移動時]のイベントに
Private Sub Form_Current()
If Me![パス名] <>"" Then
   Me![Photo1].Picture=Me![パス名]
  Else
   Me![Photo1].Picture="" 'パスがない画像がない場合表示しない
 End If
End Sub
のように設定しフォーム上のパス名に入った画像のパス\ファイル名をPhoto1のPictureソースに代入させ表示します。

非連結オブジェクトで表示する場合はテーブルのフィールドをOLEオブジェクト型にしてデータベースにオブジェクトの挿入で画像をビットマップイメージで取り込みます。そのフィールドを指定するようにすればそのフィールドに挿入してある画像が表示できます。ビットマップのレコードとなるのでbmpで保存しておかないと出来ません。
画像も小さくてファイル数も少なければ問題ないとは思います。
    • good
    • 6
この回答へのお礼

大変丁寧なご回答ありがとうございました!リンクの方法で表示することができました!本当にうれしいです。ありがとうございました。

お礼日時:2006/01/24 16:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報