質問: こちらで質問した顧客へ送るクーポン期限の案内についてです。 日付からレポートを抽出することはできたのですが、この案内を次は両面印刷をしたいです。 裏にはこちらでデザインした社名とロゴを印刷したいのですが、色々調べて試しましたがそもそも両面になりません・・・ まだ初心者で理解力が乏しいこともありますが教えていただけると幸いです。 印刷のページ設定は列数を2に指定しています。 行列指定は行間隔0、列間隔0.635 サイズは幅13.198、高さ3.799 印刷方向は左から右 となっています。 これをA4サイズの横向きの設定にしています。 ラベルウィザードではくレポートのデザイン画面から作成いたしました。
回答: 一番簡単かつ確実なのは、先に裏面の社名ロゴを印刷しておいて、その用紙の裏にクーポン券を印刷するという方法ですね。 すべてのクーポン券の裏面に社名ロゴを印刷するのなら、裏面に社名ロゴを印刷した用紙を多数用意しておいて、プリンターにセットしておいてクーポン券を印刷すればいいかと思います。 プリンターの両面印刷機能を使って、表面も裏面も同時に印刷するのは、ラベル印刷で1枚に複数レコードを印刷している場合、かなり難易度が高くなります。 (ヒントとしてはサブレポートをうまく使うか、VBAを使って制御することになります。) 追記 **サブレポート案** レポートのレコードソースに、「ページ」というフィールドを追加する必要があります。 「ページ」フィールドの値は、1ページ10件なので、10件ごとにカウントアップするようにします。 クエリで連番を表示する方法や、VBAで連番を入力していく方法が検索すれば見つかりますので、まずは連番を出力できるようにします。 連番で取得できれば、それを使って下記の [連番] \ 10 で10毎にカウントアップできるページフィールドができます。 日付で抽出するのでそれを考慮しないといけないのでかなり高難度です。 前回の質問の OpenReport の引数で抽出する方法ではなくレコードソースのクエリに抽出条件を設定することになります。 上記とは別にメインレポートの用のテーブルを作成します。 フィールドは「ページ」のみです。ここには連番を入力しておきます。 これをレコードソースとするレポートを作成して、上記のレポートを詳細セクションにサブレポートとして埋め込みます。 サブレポートコントロールのリンク親フィールド/リンク子フィールドは「ページ」に設定します。 サブレポートのサイズは用紙サイズから上下左右余白を引いたサイズにします。 このサブレポートの下部の詳細セクションに社名とロゴを10個配置します。 サブレポートのすぐ下に改ページコントロールを配置します。 以上です。 **VBA案** 現状のレポートの詳細セクションに、 社名とロゴを配置します。 詳細セクションのフォーマット時イベントで、 表ページをフォーマットしているときは、社名とロゴを非表示にします。 裏ページをフォーマットしているときは、社名とロゴを表示させて、それ以外を非表示にします。 また、裏ページをフォーマットしているときは、`Me.NextRecord = False`で次レコードに移動しないようにします。 表ページか裏ページの判定は、`Me.Page Mod 2`の結果が0か1かで可能です。 これもレポートのイベントの発生のメカニズムを理解している必要がありますので、高難度ですね。 もし、高難度でもチャレンジしたい、ということなら、下記の私の管理する掲示板がありますので、そちらで質問していただければ、ファイルをアップロードできますので、現状のファイルをもとに改修する方法を具体的にアドバイスできると思います。 Microsoft Access 掲示板 - zawazawa