質問: ms-accessでのレポート印刷について ms-access97を使用しております。早速質問させていただきます。 売上データから請求書を発行するシステムを作っているのですが、たとえば 請求書をページプリンタへ印刷する場合、1枚目を「請求書」2枚目を「同控え」3枚目を「納品書」としたいのですが・・・。それぞれ3種類のレポートを作成し、請求書を発行するフォームから発行する条件をあたえ、コマンドボタンに3枚を順に印刷するコードを書いたのですが、これでは最初に1枚目をすべて印刷し、次に2枚目、次に3枚目という順序で印刷されてしまいます。 発行する客先が多くなるほど、印刷された用紙を手作業で並べかえなければならず大変不便です。 そこで、最初の1件目(お客)を1、2、3枚印刷し、続けて2件目(次のお客)を1、2、3と印刷(以後繰り返し)できるようにするにはどうしたらよいのでしょうか?
回答: こんにちは。 yoishoさんのおっしゃる通り、adoは97では使えません。 質問文を見落としてました。 次のようにdao版に修正して下さい。 まず、vbeの参照設定で「microsoft dao 3.6 object library」にチェックがなければ、チェックします。 cnとrsのかわりに、dbとrsを使います。 宣言を入れかえます。 dim db as dao.database dim rs as dao.recordset レコードセットの作成を入れかえます。 set db = currentdb() set rs = db.openrecordset("顧客テーブル", dbopendynaset) 抽出条件はそのままでいいです。 検索部分を次のようにします。 '1回目の検索 rs.findfirst criteria if rs.nomatch then '終了 exit sub else do until rs.nomatch *** ここに印刷処理を書く(forループの中身だけ) **** filterの抽出条件は、"顧客id = " & rs!顧客id (印刷処理) ************************************************ '2回目以降の検索 rs.findnext criteria loop end if rs.close: set rs = nothing db.close: set db = nothing