4章 カスタマイズ4-3フォーム

イメージを表示する(リンク)


レコードに対応したイメージファイル(画像)をフォームに表示できます。たとえば、商品に対応した写真を表示することができます。
画像をテーブルのデータとして取り込む方法がありますが、Accessデータベースの容量が大きくなるため、ここでは画像とレコードをファイル名でリンクし、画像をテーブルに保存しない方法を示します。レコードの表示に若干時間がかかります。
リンクしたイメージを印刷するには、「リンクイメージを印刷する[Access97]」を参照してください。

[キークリック時]イベント


<操作手順>
[Soraフォーム]
  1. 画像を用意します
    フォルダを作成し、その下に画像ファイルを保存します。画像ファイルは、ビットマップ形式(*.bmp)、GIF形式(*.gif)、JPEG形式(*.jpg)が可能です。
    ここでは"C:\Program Files\Sora\Img\"フォルダの下に保存します。
  2. テーブルにフィールドを追加
    テーブルにファイル名を保存するフィールドを追加します。
    ここでは[商品]テーブルに[画像ファイル名]フィールド(テキスト型)を追加します。
  3. フォームにコントロールを追加
    フォームに画像を表示するイメージコントロールと画像ファイル名を表示するテキストコントロール、画像ファイル名を選択する画面を表示するボタンコントロールを追加します。
    ここでは[商品]フォームに[Image1]イメージコントロールと[画像ファイル名]テキストコントロール、[Comand1]ボタンコントロールを追加します。
  4. フォームにイベント(コード)を追加
    画像を登録したフォルダを定数として定義します。コード(クラスモジュール)の先頭に下記コードを追加します。
    Option Compare Database
    Option Explicit
    Const conDir As String = "C:\Program Files\Sora\Img\"   '表示フォルダ<=追加行
    

    フォームの[レコード移動時]イベントに画像を表示させる下記コードを追加します。

    Private Sub Form_Current()
        apFrmCurrent Me
        Me![Image1].Picture = IIf(IsNull(Me![画像ファイル名]), "", conDir & Me![画像ファイル名])    '<=追加行
    End Sub
    

    [Comand1]ボタンコントロールの[クリック時]イベントに[イメージファイル選択画面]を表示し、画像ファイル名を取得する下記コードを追加します。

    Private Sub Comand1_Click()
    'イメージファイルの参照
        Me![画像ファイル名] = apSelImg(conDir, "*.*")           'イメージファイル選択画面表示
        Me![Image1].Picture = IIf(IsNull(Me![画像ファイル名]), "", conDir & Me![画像ファイル名])
    End Sub
    
    以上です。