レポートにイメージを印刷するお手本データベース

図5-2-1 イメージを実行時にロードしてレポートに印刷するサンプルデータベース
このサンプルデータベースは、印刷時にイメージ(GIF)をディスク上からロードしてレポートに印刷します。社員テーブル、商品テーブルなどを印刷するとき、顔写真、商品のイメージを同時に印刷すると効果があります。イメージを印刷するには、テーブルにOLEオブジェクト型のフィールドを追加して、このフィールドにイメージを埋め込みます。ところが、テーブルのレコード件数が増えるとテーブルサイズが肥大化して、レスポンスが極端に低下します。サンプルデータベースでは、この不都合を回避するためにイメージをOLEオブジェクトに埋め込まないで、実行時ダイナミックにロードして印刷しています。
サンプルデータベース(CH5-2.mdb)では、以下に示すノウハウを習得することができます。
◆ イメージを印刷時にダイナミックにロードする方法
◆ イメージが格納されているパス名を取得する方法
● サンプルデータベースで使用するイメージを準備するには
1 Windowsのエクスプローラを起動してディスク上に作業フォルダを作成します。
2 サブフォルダ(CH5-2)からイメージファイル(*.GIF)を、作業フォルダにコピーします。
3 Access を起動したら、作業フォルダに新規データベース CH5-2.mdbを作成します。
4 データベースウィンドウからテーブル
をクリックしたら、一覧からデザインビューでテーブルを作成するをダブルクリックします。
5 テーブルのデザインビューが表示されたら、フィールド名にID、ImagePathを入力します。IDフィールドをクリックしたら、主キーのアイコン
をクリックして主キーを設定します。テーブルをtblImageの名称で保存して閉じます。

図5-2-2 イメージのパス名を格納するテーブルを作成
6 tblImageを開いたら、イメージファイルのパス名を入力します。

図5-2-3 tblImageにイメージファイルのパス名を入力
7 テーブルを保存して、Access を終了させます。
● イメージを印刷するレポートを作成するには
1 Access を起動したら作業フォルダに作成したCH5-2.mdbを開きます。
2 データベースウィンドウからレポート
をクリックしたら、一覧からデザインビューでレポートを作成するをダブルクリックします。レポートのデザインビューが表示されたら、レポートのプロパティを表示させて、レコードソースのコンボボックスからtblImageをクリックします。
3 ツールボックスからラベルのアイコン
をクリックしてレポートのページヘッダーに貼り付けて、標題としてPrint Imageを入力します。ラベルのプロパティを表示させたら、フォントサイズを26に設定します。

図5-2-4 rptImageのレポートレイアウト
4 メニューからフィールドリストのアイコン
をクリックして、一覧からImagePathのフィールドをドラッグしてレポートの詳細に貼り付けます。テキストボックスImagePathのプロパティを表示させたら、境界線スタイルのコンボボックスから実線をクリックします。
5 ツールボックスからイメージのアイコン
をクリックしたら、レポートの詳細に貼り付けます。図の挿入のダイアログが表示されたら、作業フォルダにコピーしたイメージファイルContacts.gifを選択してOKボタンをクリックします。イメージのプロパティを表示させたら、その他のタブをクリックして名前にimgImagePrintを設定します。次に、書式のタブをクリックしたらピクチャに設定されているイメージファイルのパス名を削除します。フォームのグラフィックスを削除しますか?の警告メッセージが表示されたら“はい”をクリックします。
6 メニューから並べ替え/グループ化の設定のアイコン
をクリックします。並べ替え/グループ化のダイアログが表示されたら、フィールド/式のコンボボックスからIDをクリックします。グループプロパティのグループヘッダーを“はい”に設定してダイアログを閉じます。IDヘッダーのプロパティを表示させたら、書式タブをクリックして改ページのコンボボックスからカレントセクションの前をクリックします。
表5-2-1 レポートに配置したコントロールのプロパティ
|
コントロールの種類 |
プロパティ |
値 |
|
ラベル |
標題 |
Print Image |
|
テキストボックス |
コントロールソース |
ImagePath |
|
イメージ |
名前 |
imgImagePrint |
|
ピクチャ |
なし |
|
|
IDヘッダー |
改ページ |
カレントセクションの前 |
|
レポート |
標題 |
rptImage |
|
レコードソース |
tblImage |
7 メニューからコードのアイコン
をクリックしてレポートモジュールを表示させます。CH5-2.mdbを開いたら、rptImageのレポートモジュールをコピーして貼り付けます。レポートモジュールのリストは、リスト5-2-1を参照してください。CH5-2.mdbを開いたら、モジュールbasMyLibをインポートします。
8 メニューから印刷プレビューのアイコン
をクリックしてレポートをプレビューします。ページの移動ボタンをクリックして、テキストボックスImagePathに表示されているイメージが印字されているか確認します。
9 イメージが印字されることが確認できたら、レポートをrptImageの名称で保存して、Access を終了させます。
Sub 詳細_Format()イベントの処理
このイベントは、レポートの詳細をフォーマットするときに実行されます。このイベントでは、カレントデータベースが格納されているフォルダからイメージファイルをロードして印字します。イメージファイルのパス名は、CurrentProjectオブジェクトのPathプロパティを参照して取得します。例えば、カレントデータベースがC:\Tempに格納されているときは、C:\Tempが返されます。イメージファイルをロードして印字するには、イメージコントロールのPictureプロパティにイメージファイルのフルパス名を設定します。
リスト5-2-1 rptImageのレポートモジュール
|
Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) On Error Resume Next With Me .imgImagePrint.Picture = CurrentProject.Path & .ImagePath End With End Sub |