| Access Tips by pPoy |
| 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
| |||
≪結果≫
以上で設定は終了です。 レポートをプレビューすると 無事に画像が表示されます。 次のページに移動してもきちんと表示します。 勿論直接印刷した場合も同様です。 | |||
≪注意≫
| |||
Copyright(C) pPoy 2006