Accessで複数のレポートを印刷する方法

このQ&Aのポイント
  • Access2003を使用している場合、フォームから印刷するデータの条件を指定し、一度のボタン操作で複数のレポートを印刷する方法について教えてください。
  • 現在は、一枚目のレポートをすべて印刷した後に、二枚目のレポートをすべて印刷し、それから三枚目というようになっています。しかし、1レコードごとにレポートを印刷したいという要件です。
  • 1レコードずつ抽出してforループを使用して印刷する方法を教えてください。具体的なコードの記述方法を教えていただけると助かります。
回答を見る
  • ベストアンサー

access 複数レポート印刷

access2003を使用しています。 フォームから印刷するデータの条件をあたえ、ボタンを一回押下することで複数のレポートを印刷するようにしたいのですが、、、 現状では、一枚目のレポートを全部印刷したあと、二枚目のレポートを全部印刷、次に三枚目となってしまいます。 やりたいことは、1レコード目のデータのレポートを全部印刷したあと2レコード目のデータのレポートを印刷、次に3レコード目のデータ、、、という風に行いたいと思っています。 1レコードずつ抽出してforループさせればいいと思っていますが、具体的にどういうコードを書けばいいかわかりません。 どうすればよいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Pakkun10
  • ベストアンサー率44% (22/50)
回答No.5

No.2ですが、質問をよく読んでなかったのでとんちんかんな回答になってしまいました。 1レコードずつ選択したいとのことですが、そのレポートを印刷するときに DoCmd.OpenReport "レポート名" などと書いているかと思いますが、その際に DoCmd.OpenReport "レポート名", , , "社員NO=10" と書くと社員NO.10のデータだけ印刷出来ます。 このように条件を指定することで印刷が出来るわけですが、 印刷したいデータをどうやって取得するかはレコードセットなどの 知識が必要になると思います。 レコードセットがわかるようなら、レコードセットをDoループなどでまわして社員NOのところにセットすればよいでしょう。

その他の回答 (4)

noname#140971
noname#140971
回答No.4

× Const ID取得文 = "SELECT ID FROM tab1 WHERE ID>%% ORDER BY ID" ○ Const ID取得文 = "SELECT Top 1 ID FROM tab1 WHERE ID>%% ORDER BY ID" もしくは、DLookup関数の類。 で、DLookup関数の類を使う予定で Top1 を抜いていました。 チト、バグです。

noname#140971
noname#140971
回答No.3

ルーチンのみ・・・。 tab1: ID_fld1 1__A 2__B 3__C [イミディエイト] SELECT Top 1 * FROM tab1 WHERE ID> 0 ORDER BY ID 1;A; SELECT Top 1 * FROM tab1 WHERE ID> 1 ORDER BY ID 2;B; SELECT Top 1 * FROM tab1 WHERE ID> 2 ORDER BY ID 3;C; Option Compare Database Option Explicit Const ID取得文 = "SELECT ID FROM tab1 WHERE ID>%% ORDER BY ID" Const RC取得文 = "SELECT Top 1 * FROM tab1 WHERE ID>%% ORDER BY ID" Private Sub コマンド0_Click()   Dim I    As Integer   Dim N    As Integer   Dim ID    As Long   Dim strSQL(1) As String      N = DBCount("*", "tab1")   ID = 0   For I = 1 To N     strSQL(0) = Replace(ID取得文, "%%", str(ID))     strSQL(1) = Replace(RC取得文, "%%", str(ID))     Debug.Print strSQL(1)     Debug.Print DBSelect(strSQL(1))     ID = CutStr(DBSelect(strSQL(0)), ";", 1)   Next I End Sub DBCount関数、DBSelect関数等の詳細は、余り関係ありませんので割愛します。 要は、1レコードづつ順番に取得できている点です。 仕掛けとしては、これでOKかと思います。 レポートのレコードセットをこのようにセットすれば良い訳ですから・・・。

  • Pakkun10
  • ベストアンサー率44% (22/50)
回答No.2

一つのレポートに3種類の帳票を作る か 1レコードずつレポートを開いて順番に印刷する のどちらかでしょうね。 単票のようなので1レポートに3種類のページを作るのは不可能ではないかと思います。 フッター・ヘッダーや「改ページ」などをうまく使ってみてください。

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.1

質問している意図が、判りかねますが・・・ レポートのレコードソース次第じゃないでしょうか? フォームからの条件で、1レコードしか無い条件だったのか? 複数レコード選択される条件だったのか? OpenReportにて、whereconditionを変化させながら、For文で回しても可でしょうけどね もう少し具体的に話が出てこないと、なんとも・・・

関連するQ&A

  • アクセス2000でレポート印刷

    アクセス2000でレポート印刷 レポートを印刷するとき、フォームで表示しているレコードだけを印刷したいのですが・・・ フォーム上でコマンドボタンを作ってレポートを印刷すると、関連するレコードが全て印刷されてしまいます。 フォームでレコードを指定して、そのレコードだけを印刷・・・ 教えてください!!!!

  • Accessのレポート印刷について教えて下さい。

    Accessのフォームでフィルタを使い絞り込んだデータをレポートで 印刷する場合について教えて下さい。 DoCmd.OpenReport "レポート名", acViewPreview, , Me.Filter では、フォームとレポートが同じレコードソースだと使えるという事ですが、 フォームとレポートのレコードソースが別の場合はどのようにすると フィルタで絞り込んだ条件のレポートを印刷できますか? 教えて下さい。よろしくお願いします。

  • アクセス2003でレポート印刷について。

    いつもいつもお世話になっています。 アクセス2003で月間の抽出結果一覧がある帳票フォーム(選択クエリがレコードソースです)があり、印刷ボタンでその一覧のレポートを印刷したいと考えています。 そのフォームを開く時に、抽出条件として西暦と月を入力するのですが、そのレポート(同じ選択クエリがレコードソース)を印刷するときも再度西暦と月を指定しなければいけません。この年、月の入力を一度ですませるにはどのようにしたらよいでしょうか? どなたかよろしくお願いいたします。

  • ACCESSとレポートとVBAと

    初めまして。 まったくの初心者ですが宜しくお願いします。 環境はOS:Xp・ACCESS2000です 現在、フォームに印刷ボタンを作成し、 それを押下後、レポートの画面が開くというものを VBAを用いて作成しています。 フォームには顧客コードというものを設定しているのですが、顧客コードを何番に変更しても印刷ボタンを押すと一番最初のデータ(私の場合は顧客コード「1」)がレポートに表示されます。 これをフォームの顧客コードとレポートの顧客コードが同じ番号になったレポートを表示したいのですが、どのようなVBAのコードを打てばよろしいでしょうか? 質問の意図をしっかりとお伝え出来ていないかも知れませんが、よろしくお願いします。

  • アクセスで特定のレコードのみのレポートを印刷したいのですが。

    アクセス2003である特定のレコードのみのレポートを印刷したいと思っています。現在開いているフォームのレコードのみを印刷(レポートとして)印刷するには、ファイル→印刷→ページ指定で現在印刷しているのですが、他に方法はないでしょうか?単に「レポートの印刷」とすると全てのレコードが印刷されてしまいます。今のところ特定のレコードのみ印刷するには、まずページ数を調べなければいけないので不便です。せっかくパラメータクエリなどで、そのレコードのフォーム画面を表示させても、レポート印刷につながらないので、どなたか良い方法を教えていただけないでしょうか?よろしくお願いいたします。

  • accessのレポートで封筒に住所を印刷したい

    accessを使用しています。 基のテーブルがあり、フォーム・クエリで抽出作業が終わりました。 この抽出データ(住所)を封筒に印刷したいと思うのですが、どのような順序でレポートを作成したら良いのでしょうか? ご回答をお願いいたします!

  • accessのレポートで封筒に住所を印刷

    accessを使用しています。 基のテーブルがあり、フォーム・クエリで抽出作業が終わりました。 この抽出データ(住所)を封筒に印刷したいと思うのですが、どのような順序でレポートを作成したら良いのでしょうか? ご回答をお願いいたします!

  • Accessレポートの質問です。

    Access2010のレポートで複数レコードのデータを1行に出力しようとしています。 具体的には各レコードに顧客名と金額がはいっており、 それを以下のように印刷したいと考えてます。   顧客1 10,000   顧客2 20,000 顧客3 30,000 顧客4 40,000  顧客5 50,000 合計 5件 150,000 VBAを使って処理すれば、できるのかもしれませんが、VBAでレポートを作成した ことがないので止まっています。(フォーム内でのデータ処理でVBAを使ったこと はありますが) どなたか知恵をお貸しいただければ幸いです。 宜しくお願いいます。

  • Access2000でのレポート印刷

    Access2000を使用しています。 データをテーブルに入力してレポート印刷をしたいのですが、テーブルで抽出したデータだけを印刷するにはどうしたらいいのでしょうか? 今、レポート印刷できるのはそのレポートを作成した時点でのテーブル状況が反映されたもので、その後テーブルの操作をしても、それがその都度、レポートに反映されません。よろしくお願いします。

  • Accessで複数レポートの印刷

    お世話になってます。 すみませんAccesssVBAの初心者です。 レポートを作成してフォームからボタンを押下されたタイミングでレポート出力するという機能を作成してるのですが、 レポートがサイズの関係でどうしても2つに分割しなくてはいけず、 2つのレポートをフォーム上からボタンクリック時、同時に印刷出来て ページ番号も連番でふるということは可能でしょうか? たとえば、 レポートAが6ページ レポートBが4ページあったとしたら 出力する際、レポートAを1~6ページで出力、続いてレポートBを7~10ページでページをふって印刷・・・ というような感じです。。 何か参考になるURL等あれば教えてください。 よろしくお願い致します。

専門家に質問してみよう