今回の住所録では3つのレポートを作ります。「個人情報の一覧表」、「会社の一覧表」、「葉書」です。まずは、基本的なところから始めます。
図18−1
「デザインビューでレポートを作成する」、「ウィザードを利用してレポートを作成する」の2つがありますが、私は、
あまり使用しません。 それより[新規作成]の方が非常に便利です。 クリックしてみてください。 次のような画面が
表示されます。
図18−2
オートレポートや、ウィザードなどいくつか表示されます。 簡単なレポートならこれらの機能を使って、あっという間に
出来てしまいます。 まずは簡単な”会社情報”テーブルの内容を表示する表形式のレポートを作ってみましょう。
”オートレポート:表形式”をクリックし、”基になるテーブル・・・”を”会社情報”テーブルにセットし、
[OK]ボタンをクリックしてください。
図18−3
なっ、なっ、なんと、これだけで表形式の一覧表が出来てしまいました。 後は、名前を付けて保存すれば、 出来上がりです。 便利ですね。 他のオートレポートやウィザードも試してみてください。 驚くほど簡単に出来て しまいます。
ここまでが、レポートの超基本です。 実際にデータベースを作っていくと、これだけでレポートとしてOKかというと そうは、いきません。 たった1回、取りあえず情報が見れれば良い。というのであればこのくらいのレポートでも”良し” とするかもしれませんが、実際は、もっと見栄えにこだわります。
それでは、今回は、比較的簡単な会社情報を全て表示するA4サイズのレポート(図18−4)を作ってみます。
図18−4
図18−5
まずは、このレポートの基となるレコードソースを設定します。クエリは図18−6のようになります。
図18−6
”ページフッター”に”=Now()”と言うのと”=[Page] & /・・・・”と言うのがあります。これはそれぞれ、現在の時間とページを表示しています。この2つの オブジェクトは、使えるので、このままにしておきましょう。
図18−7
”ページヘッダー”に項目名が表示されておりますが、これは、使いません。 全て削除します。ついでにレポートヘッダーに
“会社情報”と表示されているのでこれをページヘッダーに移行して“レポートヘッダー/フッター”のチェックをはずして
表示しないようにします。
後は、フォームと同じようにテキストボックスを見栄えが良くなるように並べていきます。それぞれのプロパティは、 以下のようになります。
<@会社ID>
機能:会社IDを表示します。
| コントロール | プロパティ | 値 |
| テキストボックス | コントロールソース | 会社ID |
| 書式 | 0000 | |
| 縦書き | はい |
今回は表示をプロパティの書式で4桁になるように設定していますが、クエリで設定する方法もあります。
図18−8
クエリで設定するときは図18−8のように設定して、テキストボックスのコントロールソースは、“ID”とします。
この“ID”は基となるフィールド名の“会社ID”以外の名前ならば何でもOKです。
<A会社名>
機能:会社名を表示します。
| コントロール | プロパティ | 値 |
| テキストボックス | コントロールソース | 会社名 |
<B部署>
機能:部署を表示します。
| コントロール | プロパティ | 値 |
| テキストボックス | コントロールソース | 部署 |
<C住所1>
機能:郵便番号と住所1、番地を表示します。
| コントロール | プロパティ | 値 |
| テキストボックス | 名前 | txt住所1 |
| コントロールソース | ="〒" & Format([郵便番号],"000-0000") & " " & [住所1] & [番地] |
@の会社IDでは、[書式]プロパティで書式を設定しましたが、テーブルやクエリのいくつかのフィールドをまとめて1つのテキストボックスに表示するときは、コントロールソースかクエリで設定する必要があります。コントロールソースの設定をやる時に気をつけなければいけないのが名前です。コントロールソースの文字列の中にSQL文のフィールド名である”住所1”があります。 このとき 名前を同じ”住所1”と指定すると”#Error”と表示されてしまいます。 そのため、フィールド名と異なる名前に する必要があります。
<D住所2>
機能:住所2を表示します。
| コントロール | プロパティ | 値 |
| テキストボックス | コントロールソース | 住所2 |
<E代表電話>
機能:代表を表示します。
| コントロール | プロパティ | 値 |
| テキストボックス | 名前 | txt代表電話 |
| コントロールソース | ="(代表) " & [代表電話] |
<FFAX番号>
機能:FAX番号を表示します。
| コントロール | プロパティ | 値 |
| テキストボックス | 名前 | txtFAX |
| コントロールソース | ="(Fax) " & [FAX] |
<GURL>
機能:URLを表示します。
| コントロール | プロパティ | 値 |
| テキストボックス | 名前 | txtURL |
| コントロールソース | ="(URL)" & [URL] |
E〜Gはコントロールソースでフォーマットを決めていますが、[書式]プロパティで設定することも出来ます。
<レポート>
| コントロール | プロパティ | 値 |
| レポート | レコードソース | SELECT [会社情報].[会社ID], [会社情報].[会社名], [会社情報].[部署], [住所].[郵便番号], [住所].[住所1], [住所].[住所2], [住所].[番地], [電話番号].[電話番号] AS 代表電話, 電話番号_1.電話番号 AS FAX, [URL].[URL] FROM ((URL RIGHT JOIN (住所 RIGHT JOIN 会社情報 ON [住所].[住所ID]=[会社情報].[住所ID]) ON [URL].[URLID]=[会社情報].[URLID]) LEFT JOIN 電話番号 ON [会社情報].[代表電話ID]=[電話番号].[電話ID]) LEFT JOIN 電話番号 AS 電話番号_1 ON [会社情報].[FAXID]=電話番号_1.電話ID; |
最後にこのレポートを開いたときにレポートを最大化して閉じるときに元に戻すようにするプログラムを作りましょう。
図18−9
レポートをオープンした時に全面表示するためのプロシージャです
Private Sub Report_Open(Cancel As Integer)
DoCmd.Maximize
End Sub
レポートを閉じたら元の大きさに戻すようにするプロシージャです。
Private Sub Report_Close()
DoCmd.Restore
End Sub
これで完成です。