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