プロが教えるわが家の防犯対策術!

こんにちは。
現在アクセスにて、複数あるレポートを一つにまとめれないか挑戦中です。
現在の作業手順は以下になります。
1.見積書を選択する→見積書のフォームが表示される
2.見積書のフォームにある印刷ボタンをクリック→見積書の表紙がプレビューされる→表紙を印刷
3.見積書のフォームになり、各項目の「開」ボタンをクリック→各項目の明細のフォームに移行
4.明細のフォームにある印刷ボタンをクリック→該当項目の明細がプレビューされる→印刷
5.見積書に記載されている項目の数だけ3.~4.を繰り返す

この作業を表紙のフォームのボタン一つで出来ないでしょうか?もちろんボタンは新規で作ります。
項目が少なければなんてことないのですが、項目が多くなると今どこまで印刷が終わったのかわからなくなって、同じ明細を2回印刷してしまったり、最悪なのは項目を一つ飛ばして印刷してしまったりと、効率悪い上に重大なミスに繋がります。

色々調べながら試してみましたが、また挫折しそうで、質問しました。

現在あるのは見積書の表紙のレポートと明細のレポートです。
新規に一括印刷用のレポートを作成し、その詳細部分に既存の表紙レポートと明細レポートをサブレポートとして組み込むということをやってみました。
かなり惜しかったのですが、以下の問題が発生しました。
①表紙は問題なく反映されるのですが、明細が全然関係のない明細になってしまう。というより、明細として記録されているデータを全て反映してしまう。
②明細レポート側のレポートヘッダーが明細の2ページ目以降消えてしまう。

現在の仕組みとしては、表紙は見積書のフォ-ムからIDを引っ張ってきており、明細は見積書のサブフォームからID(表紙とは別のID)を引っ張っています。なので、既存のクエリをコピペしていじれば行けそうな気がするのですが、②の問題に関してはどうしようもなさそうな気がしています。
だとすると、全く別の一括印刷用のレポートを作るしかありませんか?
そうであれば、表紙と明細という、デザインの異なる、しかも共にヘッダー・詳細・フッターを必要とする場合どのように作成したら良いのでしょうか?

どなたかご教授いただければ助かります。

質問者からの補足コメント

  • ご回答ありがとうございます。
    入力というのはデータの入力ですか?
    であれば入力は全て済んでいる状態での話です。

    以下、今使っているものの仕組みです。(作成者は前任者です。)
    1.トップ画面のフォームにて『見積書新規作成』をクリック→見積書の作成画面のフォームに移行
    2.見積書のフォームにはサブフォームがあって、そのサブフォームに内訳項目を入力→その内訳の詳細に移行する『開』ボタンが有効になる
    3.『開』をクリック→その内訳項目の更なる内訳明細を入力するフォームに移行
    4.明細のフォームにて内訳明細を入力
    5.必要な分だけ2.~5.を繰り返す

    つまり、表紙を作るフォームと明細を作るフォームがあり、印刷する際はそれぞれのフォームからそれぞれのレポートを呼び出して印刷している状況です。
    その異なるレポートをどうにかして一つにまとめられないかという内容の質問でした。
    わかりにくくてすみません。

    No.1の回答に寄せられた補足コメントです。 補足日時:2016/07/27 09:33
  • ご回答ありがとうございます。
    そうなんです、抽出ができないのです。
    普段明細の抽出を単体で行うときは、
     DoCmd.OpenReport "R_見積書明細", acPreview, , stCrteria
    というコードを使っています。
    stCrteriaは"ID=2019"のような抽出に必要な値が代入されます。
    これは全然問題なく動きます。
    これを見積書のフォームでやろう一括印刷がしたいので、一括印刷用のコマンドボタンを作り、一括印刷用の親レポートを作成し、そのサブレポートとして既存のR_見積書表紙とR_見積書明細というレポートをドロップダウンしました。
    すると、このレポートを開くためには、
     DoCmd.OpenReport "R_見積書一括印刷", acPreview
    となるため、上記のような明細の抽出ができなくなります。
    (長くなるため次の補足に続きます。)

    No.2の回答に寄せられた補足コメントです。 補足日時:2016/07/27 09:49
  • y504様のNo.2のご回答に対する細くの続きになります。

    そこで、もともと表紙で使っていたクエリをコピペして一括印刷用のクエリを作り、必要なIDを拾い上げるようにすればうまく行くかもしれないと思いましたので、それはこれから試してみます。
    この状態での明細レポートのコントロールにIDを代入する方法がわかりませんでした。
    もしご存知でしたら教えてください。

    さらに、ページヘッダーにて対応するという話ですが、すでにある二つのレポートを組み込んだレポートですので、ページヘッダーに明細レポートを設定すると表紙と明細の順番が逆になるのと、表紙がうまく表示されないのではと思ったのですが、そういう意味ではなかったですか?

    以上の理由から一括印刷用のレポートは詳細の部分しか使用していません。

    うまく伝えられなくてすみません。

      補足日時:2016/07/27 10:00

A 回答 (3件)

ページヘッダーの部分は文字だけでは状況がよくわからないので


回答は控えさせていただきます。

レコードの抽出についてですが
レポートのレコードソースになっているクエリで条件を指定します。
フォームにIDがあるのであればクエリの抽出条件に
=[Forms]![メインフォーム名]![ID]
とすれば該当のIDのレコードのみになると思います。

http://oshiete.goo.ne.jp/qa/2114831.html
    • good
    • 0
この回答へのお礼

お返事遅れましてすみません。
アクセスの謎の仕様に相当苦労しましたが、何とか理想通りのレポートを作成できました。
明細レポートがレポートヘッダーを使用していなかったので、これと全く同じものを作り、レポートヘッダーに表紙レポートをサブレポートとして組み込み、クエリを作成し、
 ・表紙だけの印刷
 ・明細だけの印刷
 ・表紙の後ろに明細が続く印刷
が全て可能となりました。
2つのレポートの合成という点で似たような悩みを持つ人は多いはずなのですが、意外と情報は少ないものですね。

ご回答ありがとうございました。

お礼日時:2016/07/30 15:12

>①表紙は問題なく反映されるのですが、明細が全然関係のない明細になってしまう。

というより、明細として記録されているデータを全て反映してしまう。

明細の抽出がされていないのでは?
対象のデータだけ抽出するように条件を指定すればいいと思います。

>②明細レポート側のレポートヘッダーが明細の2ページ目以降消えてしまう。

レポートヘッダーは各ページには印刷されません。
ページヘッダーで対応してみては?
この回答への補足あり
    • good
    • 0

印刷→入力→印刷


というやり方に問題があります。
すべて入力させてから、まとめて印刷にした方が良くないですか?
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A