Access Tips by pPoy

  
トップへ←Top    QueryへQuery  FormへForm  ReportへReport  Module(Sub)へSub  Module(Function)へFunction  ExcelへExcel  Etc.へEtc.  Word連携へWord

Report 画像をテーブルに保存せず直接ファイルから印刷する方法
《イメージ コントロール》(Access97,Access2000,Access2002)
Access ではテーブルの 「OLEオブジェクト型」 フィールドに、直接画像ファイルを
埋め込んで保存することができます。
ところが、Access は画像ファイルとの相性が悪いらしく保存する画像の量が多くなると
急激にデータベースサイズが肥大化します。

これを回避するためには、画像ファイルを Access 内に保存するのではなく、
ファイル名のみをテキスト型フィールドに保存し、印刷時に外の画像を呼び出して、
イメージコントロールにセットしてから印刷実行します。
≪準備1≫

テーブル
画像ファイル名を保存する
テーブルを用意します。

画像ファイル名用のフィールド名は、
「FileName」 とします。
画像ファイルは mdb ファイルと
同一フォルダに保存します。

※ 画像が同じフォルダに保存されていない場合は、
ファイル名だけでなくパスも登録します。
≪準備2≫

次に、このテーブルをもとに単票形式のレポートを作成します。

デザイン画面 レポートの詳細セクションに、
「イメージ コントロール」 を配置します。

イメージ アイコン ←このアイコンです。

とりあえず、何か画像を指定します。

※ この画像は後で使用しますので
同じフォルダに入れておいてください。

イメージコントロールの下には、
画像名の保存されたフィールドと、
説明用のフィールドも配置します。
≪準備3≫

イメージのプロパティ

イメージコントロールの名前は、
img_1」 とします。

←他の設定はこんな感じです。

≪準備4≫

イメージコントロールに画像を表示する為に、「レポート」 の 「詳細セクション」 の
印刷時」 イベントに以下のコードを記述します。

※注意※
念のため、エラー処理も入れて置きます。
Access 97 の場合は、以下の 「※」 の行には正しいパスを記述します。
Private Sub 詳細_Print(Cancel As Integer, PrintCount As Integer)
'指定された画像をセットする処理
'2006/04/22 pPoy
On Error GoTo Err_詳細_Print
    Dim myPath As String
    myPath = CurrentProject.Path          '※
    Me!img_1.Picture = myPath & "\" & Me!FileName
    
Exit_詳細_Print:
    Exit Sub
    
Err_詳細_Print:
    'ファイルが見つからなかった場合はデザイン時の画像を表示
    Me!img_1.Picture = myPath & "\くまさん.gif"
    Resume Exit_詳細_Print
End Sub
≪結果≫

結果

以上で設定は終了です。

レポートをプレビューすると
無事に画像が表示されます。
次のページに移動してもきちんと表示します。

勿論直接印刷した場合も同様です。
≪注意≫

  • 画像ファイルが見つからなかった場合は、初期設定のくまさんの画像が表示されます。

  • 最初に開いた時や次のページに移動した時に、一瞬 「画像のインポート中」
    のダイアログが表示されます。
    一頁に画像が3枚表示される設定では、「インポート中」が3回表示されます。
    BMP ファイルが指定されたときは、あまり気にならずに表示できます。

  • Access に画像データを保存する場合、BMP 形式のものはそのまま保存されます。
    JPEG 形式(JPG) や GIF 形式の圧縮されたデータは、
    BMP に変換された情報と、オリジナルのデータ形式 (JPEG 等) に戻すための情報、
    及びオリジナルのデータそのものを全部一緒に保存するようです。

    そのため BMP 形式以外の画像を直接 Access に保存した場合、
    mdb のサイズが極端に膨らんでしまいます。

  • フォームで同様の処理を行う方法は、こちらです。

  • 可愛いくまさんの画像は、◆素材処 こぐま屋◆ さんからお借りしています。
    和風の素材のほかに、可愛い素材が沢山あります。


この頁のTOPへTop
【念の為の注意書きです。】
このページ(下位ページ含む)の全ての物の無断転載を禁止いたします。又、当ページ(下位ページ含む)に記載されていることは、全て自己の責任において実行してください。

Copyright(C) pPoy 2006