Accessレポートとパススルークエリ
帳票の印刷をするのにAccessのレポートは強力なツールだが、注意する点も多い。
非連結で使用するなら、原則1ページだけの一覧表に利用しよう。
ページフォーマットがAccessのレポートにお任せするしかないため、複数ページの書類では、
改ページの前後で、明細が表示されなかったり、明細単位で連番を印刷したい場合に
正しく連番を印刷できない。
VBAのコードで、NextRecordプロパティを駆使するなどして制御しても、プリンタや
用紙の余白調整を行なう際に、正しく印字できなくなる場合が多い。
特に、数量、金額、集計した値が重要なレポートには向かない。
Accessのレポートを賢く利用するためには、連結で活用するほうが良い。
非連結で使用したい要因として、クライアントサーバー等、ネットワークで接続された
サーバーをADOで使用したい場合がある。
Accessでは、ネットワークサーバーと接続する方法として、何通りもの方法が用意されている。
その中でも、強力なのが、パススルークエリーだ。
パススルークエリーは、データーベースサーバーのSQL文をそのまま記述することが出来る。
SQL文が結果セットを返してくれば、Accessレポートのレコードソースとして利用できる。
レポートの改ページやレイアウトの調整は、Accessの内部テーブルやクエリをレコードソースとした
場合とまったく変わらない。
パススルークエリー、ODBC機能を利用して直接サーバーに問い合わせ、クエリとしてユーザに
クエリ表を返してくれる。
レポート表示前に、接続文字列の設定とSQL文をVBAで生成してパススルークエリを作成し
レポートのレコードソースに設定する。
あとは、Accessのテーブル、クエリと同じように、レポートで利用できる。
参考ページ
リンクテーブルとパススルークエリ
ttp://koano.jp/b/pgsql/access/linktable.html