Visual Basicユ―ザーのための Accessプログラミングソリューション
Access97 Tips集 part 9
秋月 巌 AKIZUKI,Iwao
レポートの作成は,データベースアプリケーションの作成において重要な課題のひとつです.最新の情報が格納されたデータベースから,人間が理解しやすい形でデータを加工,表示することで,データが実際のビジネスシーンで有効に活用されます.Accessにはレポートを作成するための強力なツールが付属しています.多くの部分でフォームを作成する要領と共通しているのは,どちらもデータを表示するという部分では共通の機能を持つからです.特に,テーブルを指定したりSQL文を指定することでデータを自動的に抽出するという部分では同様の方法を用います.
しかしまた,レポート専用の機能や,フォーム専用の機能もあり,それらの差を理解することでフォーム作成の知識を利用することができます.
●簡単にレポートを作成する
オートレポートはAccessでレポートを作る上でもっとも簡便な手段です.レポートの元になるテーブルやクエリーを指定するだけで,データを表示するレポートを自動作成します.
レポートを作成するにはデータベースウィンドウで「レポート」タブを選択し,「新規作成」ボタンをクリックします(図1).オートレポートを利用するためには,表示されたダイアログボックスのリストボックスから「オートレポート」を選択し,「基になるデーブル/クエリー」コンボボックスでテーブルかクエリーを選択します(図2).
これだけで,Accessは図3のようなレポートを生成します.このレポートを保存してフォームから呼び出せば,テーブルやクエリーの内容を表示するような最低限のレポート処理をすることはできます.
図1:データベースウィンドウから「レポート」タグを選択し「新規作成」ボタンをクリック
図2:「オートレポート:単票形式」を選択し,テーブルかクエリーを選択する
図3:オートフォーム機能で完成したレポート
●ウィザードを使ってレポートを作成する
オートフォームで作成したフォームよりもう少しカスタマイズされたレポートが必要な場合には,ウィザードを利用しましょう.ウィザードでは対話的に設定をしてゆくことで,より楽に,カスタマイズされたレポートを作成することができます.
ウィザードを利用するには「レポートの新規作成」ダイアログのリストボックスからレポートウィザードを選択し「基になるデーブル/クエリー」コンボボックスにテーブルかクエリーを選択します(図4). レポート作成のためのウィザードが起動するので,レポートに表示する項目を選択します(図5).グループレベルを指定するダイアログが表示されます.グループ化したレポートの作成は次のTipsで説明しますので,次のダイアログでは何も選択せずに次に進みます(図6).
次のダイアログボックスでは,データをレポートに表示するときの並べ替え(ソート)順序を指定します.複数のソートを指定する場合には,複数のフィールド(項目)を指定することもできます(図7).図8のダイアログでは,印刷するレポートの形式を指定します.選択できるのは単票形式(図11a),表形式(図11b),帳票形式(図11c)です.
図9のダイアログボックスでレポートのデザインを指定した後,レポートの名前を指定(図10)すれば,図11a〜cのようにそれぞれ完成です.
図4:レポートウィザードを選択する
図5:レポートに表示する項目を選択
図6:グループレベルは何も指定しない次のダイアログボックスでは,データをレポートに表示するときの並べ替え(ソート)順序を指定します.複数のソートを指定する場合には,複数のフィールド(項目)を指定することもできます(図7).図8のダイアログでは,印刷するレポートの形式を指定します.選択できるのは単票形式(図11a),表形式(図11b),帳票形式(図11c)です.
図9のダイアログボックスでレポートのデザインを指定した後,レポートの名前を指定(図10)すれば,図11a〜cのようにそれぞれ完成です.
図7:並べ替え順序を指定する
図8:表示形式を指定
図9:デザインテンプレートを選択
図10:名前をつけて完成
図11a:単票形式レポート 図11b:表形式レポート 図11c:帳票形式レポート
●ウィザードでグループ化したレポートを作成する
「グループ化したレポート」とは,指定したある項目の値が共通するレコードを,ひとつにまとめて表示するレポートのことです.
たとえば図12のような過去の販売履歴を抽出するクエリーがあったとします.このクエリーを「顧客名」項目(kokyaku_mei)を元にグループ化して,レポートにしたのが図13です.レポートには各顧客ごとの購入履歴と合計金額が出力されます.
このようなレポートをウィザードで作成するには,レポートウィザードが,グループレベルの追加をたずねてきたときに,グループ化する基準になる項目を選択します(図14).グループ化した単位で集計したいような場合は「集計のオプション」ボタンをクリックします(図15).「集計のオプション」ダイアログでは,どのように集計するかを指定します(図16).「合計」「平均」「最小」「最大」「パーセンテージを計算する」のそれぞれのチェックボックスをチェックすると,該当の値がグループごとに表示されます.
「表示するデータ」オプションボタンではグループ内の詳細データと集計値を表示するか,集計値のみを表示するかを選択します.集計値のみを表示し,すべてのオプションを指定したレポートが図17です.グループ内の値の合計,平均,最小,最大,パーセンテージがレポートとして表示されています.
図12:レポートの元になるクエリー
図13:グループ化して表示
図14:グループレベルを設定する
図15:「集計のオプション」ボタンをクリック
図16:集計のオプションを指定
図17:レコードのデータを表示せず,集計値だけを表示
●デザインビューを利用してレポートを作成する
ウィザードは強力なレポート作成機能を持っていますが,ユーザーの要求に応えるような場合には,やはりデザインビューを利用して手動でレポートを作成することが必要になります.また,ウィザードやオートレポートを使って作成したレポートをひな形にしてカスタマイズをする場合にも,デザインビューを使用します.
デザインビューで新規にレポートを作成するには,「レポートの新規作成」ダイアログのリストボックスからデザインビューを選択します(図18).デザインビューで表示されたプレーンなレポート(図19)が表示されるので,左上の四角い部分を右クリックしてメニューを表示し,「プロパティ」を選択します.次に「データ」タブを選択し,「レコードソース」プロパティにレポートの元になるデータソースを指定します.ウィザードのようにレコードやクエリーを指定することもできますし,図20のようにSQLのSELECT文を指定することもできます.これでレポートの実行時に表示するためのデータが自動的に取得されます.しかし,取得したデータをどのように表示するかは,Accessのビジュアルツールを使って指定する必要があります.
データ表示の設定はフォームと同様にコントロールをレポート上に配置して行ないます.データをテキストとして表示するためのコントロールはテキストボックスです.レポートですので,もちろんフォームとは違ってデータを入力することはできません.また,ラベルコントロールは見出しなどの固定した値を設定するためのものであり,一般的にはデータの表示には使用しません.
図21はレポートにテキストボックスを配置したところです.配置したコントロールのプロパティから「データ」タブを選択し,「コントロールソース」に表示する項目の名前を指定します(図22).この状態でレポートを実行すると図23のようなレポートが完成します.1レコードずつ表示する単票形式にレポートを表示する場合はコントロールを縦に配置し(図24),一覧表の形式で表示したければテキストボックスを図25のように横に配置します.最後に見出しをヘッダに移動します.完成したレポートが図26,図27です.
図18:デザインビューを選択 図19:何も配置されていないレポート
図20:レコードソースプロパティにSQL文を指定 図21:テキストボックスを配置
図22:テキストボックスに表示するデータ項目を指定 図23:レポートを実行
図24:コントロールを単票形式に配置 図25:コントロールを表形式に配置
図26:単票形式のレポート 図27:表形式のレポート
●レポートを任意の位置で改ページする
作成したレポートはデータを1ページ内に表示できなくなると自動的に改行します.これは便利な機能ですが,カード形式の場合は1レコードを一枚の用紙でレポートしたいような場合があります.また,一枚のレポートを2枚に分割して出力したいような場合もあります.
このような場合には,改ページコントロールを使用します.ツールボックスから改ページボタン(図28)をクリックし,レポート上にドロップします(図29).これにより,各レコード毎に改ページを行なうレポートが完成します.
図28:改ページコントロールのボタン
図29:改ページコントロールを配置した
VB Magazine ライブラリ | Visual Basic WorkGroup
int21 ホームページ | PCDN ホームページ
![]()
Copyright (c) 1998 int21 Corporation All Rights Reserved.
For questions or comments, please send mail to: pcdn@int21.co.jp