AccessVBA複数レポート条件毎にまとめて出力

このQ&Aのポイント
  • AccessVBAを使用して複数のレポートを特定の条件ごとにまとめて出力する方法について質問です。
  • 具体的には、テーブル名「納品書」から作成した複数のレポートを顧客番号ごとに1つのファイルにまとめる方法を知りたいと思っています。
  • フォーマットの異なるレポートを特定の条件で振り分けるコード例を教えてください。
回答を見る
  • ベストアンサー

AccessVBA複数レポート条件毎にまとめて出力

先日、こちらで以下の質問に回答いただきました。 ●Acccess レポートをグループ別に出力する http://okwave.jp/qa/q8228404.html そこでさらに質問なのですが、 1つのテーブルから作成した複数のレポートをグループ毎にまとめ、 1つのファイルを作成することは出来るのでしょうか? テーブル名「納品書」を元にした レポート名「R_納品書1」、「R_納品書2」、「R_納品書3」、「R_納品書4」 各々のレポートは顧客番号でグループ化しています。 これを顧客番号ごとに1つのファイルを作成できればと思います。 それぞれフォーマットが異なる為、1つのレポートで完成させることができず、 検索したところ、複数レポートを連続して出力する、というのは見つけましたが、 それを特定条件で振り分ける、というのはどういうコードにすればよいのか 自力では見つけられませんでした・・・。 どうぞよろしくお願いいたします。

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

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

Access レポート PDF 複数の種類 結合 でGoogleったら Accessでデザインの違う複数のレポートを1つのPDFファイルとして出力する http://www.ilovex.co.jp/blog/system/softwaredevelopment/access1pdf.html そちらのお望みの形になるかは不明です。 VBAでやるとなると外部のアプリ・ツールが必要になってきます。

semi076
質問者

お礼

いつもお助けいただき、ありがとうございます。 いただいた方法で済ませようと思います。 また、他ツールが使えるようだったら、 そちらの利用も検討します。 ありがとうございました。

関連するQ&A

  • Acccess レポートをグループ別に出力する

    クエリ「納品書」を元にしたレポート「納品書」(※'クエリ名とレポート名は同名)は フィールド「顧客番号」(テキスト型)でグループ設定をしています。 レポートをPDF出力する際、グループごとにファイルを保存したいと思います。 しかし、VBA実行時に「パラメータが少な過ぎます。7を指定して下さい。」と エラーが出てしまい、行き詰まっています。 VBAの知識もほとんど無い為、どこで躓いているか教えていただけないでしょうか。 また、 他サイトで申し訳ありませんが・・・、 ●ACCESSVBA レポートをグループ毎に別のPDFファイルとして保存 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14108043684 こちらの回答を参考に、以下のように作成しました。 (以下、レコードソース) --------------------------- Const TBL_NAME = "納品書" Const RPT_NAME = "納品書"  Const PDF_PATH = "C:\Users\Desktop\ Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset rs.Open "SELECT DISTINCT 顧客番号 FROM 納品書", CurrentProject.Connection, adOpenStatic, adLockReadOnly Do Until rs.EOF pdfName = rs!顧客番号 DoCmd.OpenReport RPT_NAME, acViewPreview, ,"顧客番号=" & rs!顧客番号, acWindowNormal DoCmd.OutputTo acOutputReport, RPT_NAME, acFormatPDF, PDF_PATH & Format(date,"yyyymmdd") & ".pdf" DoCmd.Close rs.MoveNext Loop ---------------------------

  • Access2002で任意のレコードのみをレポートで印刷したい

    http://oshiete1.goo.ne.jp/qa5272888.html の続きです。 テーブルは下記のとおりです。(計4つ) 1.顧客テーブル(データ投入済み) ・顧客ID(テキスト) ・顧客名(テキスト) ・フリガナ(テキスト) 2.納品書テーブル(データはフォームから自動生成) ・納品書ID(オートナンバー) ・納品日付(日付) ・顧客ID(テキスト) 3.注文テーブル(データ投入済み) ・注文ID(テキスト) ・顧客ID(テキスト) ・納品書ID(テキスト) ・数量(数値) ・摘要(テキスト) ・選択(Yes/No) 4.商品マスター(データ投入済み) ・商品ID(テキスト) ・商品名(テキスト) ・単価(数値) 以上の4つのテーブルでテストDBを作っています。 上述したとおり、フォームで、 1.新規レコードの作製 2.納品日付入力 3.コンボボックス(従業員名、カナ)をコンボボックスで選択 という手順を踏み、納品書番号が自動的に振られるフォームまで作成できました。 これを元に、レポートとして、 ・顧客を選択 ・納品書番号を選択 して、選択したレコードをレポートに表示したい、という質問です。 前の質問で、下記ご回答を得ております。 --------------------------------------------------------------- 1.納品書の一覧 以前作成した「納品書番号」のレコードソースを SELECT 納品書テーブル.納品書ID, 納品書テーブル.納品日付, 納品書テーブル.顧客ID FROM 納品書テーブル ORDER BY 納品書テーブル.納品書ID DESC; に変更して、新しいものが先に見えるようにします 2.フォームのプロパティで「データ」の「追加の許可」を「いいえ」にします。 3.ウィザードが起動したら「フォームの操作」「フォームを開く」と進み、「納品書番号(選択)」を開くようにします。これでいつでも新規納品書を作成できます 4.「納品書番号」フォームのイベントで「アクティブ時」を「[イベント プロシージャ]」にし編集ボタン(…)を押して、以下のようにします Private Sub Form_Activate() Me.Requery End Sub これで新規納品書作成後に「納品書番号(選択)」を閉じると、最新の納品書が表示されます 5.レポート「納品書」の作成 レコードソースは SELECT 納品書テーブル.納品書ID, 納品書テーブル.納品日付, 従業員マスタ.従業員名 FROM 従業員マスタ INNER JOIN 納品書テーブル ON 従業員マスタ.従業員ID = 納品書テーブル.顧客ID WHERE (((納品書テーブル.納品書ID)=[Forms]![納品書番号]![納品書ID])); 6.レポートにフィールドリストから「納品書ID」「従業員名」などを貼り付けます 7.「納品書番号」をデザインモードで開き、ボタンを追加し「納品書」レポートをプレビューで開くようにします。これで任意の納品書が印刷できるようになります 8.実際のレポートは納品書番号に対応するアイテムが並ぶ必要がありますが、これはレコードソース(クエリ)を拡張することでもできるし、親子レポートにすることでも可能です。色々試してください --------------------------------------------------------------- fuuten_no_nekoさん、ありがとうございました。 これまでは「フォーム」に関する質問で、今回は「レポート」に関するものに進んできましたので、新規の質問にしたほうがよいとのアドバイスを受け、この質問を立ち上げます。 なお、「今ここまでできている」という部分は、補足に記述します。 どうぞよろしくお願いします。

  • AccessVBAでレポートをPDFで出力

    いつもお世話になっております。 現在、AccessVBAを使用して、簡単なレポートを、PDFとして出力するプログラムを立てているのですが、レポート出力をループで回して、VBAよりPDFファイルを自動的に保存したいのですが・・・。 '(テーブル情報のIDが1の情報のみ、PDFで出力) DoCmd.OpenReport "レポート名", acNormal, , "ID=1" 以上のロジックを、実行すると、「ファイルの保存先ダイアログ」が勝手に開きます・・。 プリンタの設定は事前にAcrobatに設定してあるので、PDF化は容易に出来るのですが、上記のロジックを実際には(IDの数だけ)ループで回しているので、毎回「名前を付けて保存」ダイアログが開くのがとても煩わしいです(:_;)。 VBA上で、保存先を指定して、「名前を付けて保存」ダイアログが開かないようにする方法はないでしょうか? 今日一日調べても有力な手がかりが無かったので、どなたかご教授下さい。

  • accessで条件ごとにレポート印刷をしたい

    accessは初心者です。 顧客名簿テーブルを基に会社別にレポート印刷をしたいと思っています。 会社別にレポート作成、若しくは会社名を入力ごとに検索抽出しレポート作成をしたいと思っています。 どのようにすれば出来るのでしょうか? どなたか教えていただけますでしょうか。宜しくお願いいたします。 テーブル:顧客名簿 フィールド:会社名,氏名,住所,TEL,備考 レポート名:リスト

  • Accessレポート 複数条件での集計

    どなたかお知恵をお貸しください。 テーブル名:T_当社 フィールド:商品管理番号(テキスト)、入庫日(日付)、数量(数値)、金額(数値)、伝票番号(テキスト) テーブル名:T_取引先 フィールド:商品管理番号(テキスト)、入庫日(日付)、数量(数値)、金額(数値) クエリ名:Q_商品一致 元テーブル:[T_当社]、[T_取引先] フィールド:商品管理番号(テキスト)、入庫日(日付)、数量(数値)、金額(数値)、伝票番号(テキスト) 抽出条件:[当社]テーブルの[商品管理番号]と[取引先]テーブルの[商品管理番号]が一致するものだけ データベース構成は以上の通りです。下記のようなレポートを作成したいのです。 条件1:[入庫日]を月単位でグループ化し、[数量][金額]を集計する。----- レポート上の表示項目名[数量][金額] 条件2:[伝票番号]の値が[3U]で始まるものと、[3N]で始まるものは、 条件1の[数量]と[金額]から差し引いて、別列に表示させる。 ※3U、3Nのデータに関しては、[0]が表示されず、空白でもOK。 自分でしたのは、下記の通りです。 1.Q_商品一致クエリで、[伝票番号]が、3Uと3Nで始まるレコードを除外。 2.Q_商品一致クエリを元に、[伝票番号]が、3Uで始まるレコードだけを抽出するクエリ[Q_3U]を作成。 3.Q_商品一致クエリを元に、[伝票番号]が、3Nで始まるレコードだけを抽出するクエリ[Q_3N]を作成。 4.Q_商品一致クエリを元に、[入庫日]でグループ化したクエリ[Q_商品一致(月別)]を作成。  Q_3U、Q_3Nも同様に、[入庫日]でグループ化したくエリを作成。 (4)で作成した3つのクエリを、1つの選択クエリにしてみたのですが、これだと、例えば、 4月度にしか[3N]データがない場合でも、5月度以降の行にも、4月度の[3N]データの値が繰り返し表示されてしまいます。

  • アクセスのレポートを使って出力したい

    こんばんわ。 お世話になります。 テーブルの中に5000個ほどのデータがあり、そのフィールドは、分類番号 枝番号 顧客名 初回購入日  最新購入日 購入商品 購入商品の品番 といった形になっております。 そのデータを利用して、任意の顧客一人に対しての残り全てのフィールドを表示したいのです。 どのような手順でレポートを作ればよいのでしょうか。 ご教示よろしくお願いいたします。

  • ACCESS / 抽出条件によってレポートの種類を変えたい

    初歩的な質問ですが、アドバイスをお願い致します。 FormAというフォームに、複数のテキストボックスを作成して、 店舗コード・商品名・担当者のどれかを選択して抽出した結果をレポートに出力する、という形を考えております。 (店舗コード・商品名の両方を選択することも可など、複数の条件でも出力させるつもりです。) 悩んでいるのが、 ★店舗コードで抽出した場合→店舗コードをキーに見たレポート ★商品名で抽出した場合→商品名をキーに見たレポート ・・・といったように、複数の条件で出力可能にしてしまうと、 レポートをいくつ作成すればいいのか初心者の私は考えてしまっています。 できれば1枚のレポートを作成して、抽出条件によってレポートの中身、見た目を変えたいと思ってるのですが、どのような方法がありますでしょうか。宜しくお願い致しますm(__)m

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

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

  • access 範囲指定してレポート出力

    書類の出力をaccessで利用しています。 現状では、レポートを出力するために番号を1つ1つ指定するしかなく、 量が多いと手間なため、範囲指定してそれぞれ番号のレポートを出力することはできますか。例)番号1なら番号1用の書類、番号2なら番号2用の書類・・・・のように今回の指定だと10枚出力する形になります。 現状の指定方法:1 ↓ 理想の指定方法:1 ~ 10 書類を出力するデータはaccess2003で作成されたものです。書類に表示されるデータはリンクテーブルが元になります。 使用しているのはaccess2016になります。 よろしくお願いします。

  • アクセス 複数条件の抽出~出力について

    ■アクセスのフォームにて、複数の条件を入力し、合致するリストをエクセルで出力する   データベースを構築しようとしています。  ⇒この複数の条件を入力する件に関し質問です。 ■目的は、顧客からのアンケート回答結果をDBから取出し、エクセルにて解析を行う事です。  情報量が膨大であるため、セグメントした形で出力し効率を上げたいと考えています。 ○テーブルのフィールド構造:   支店(テキスト型)、顧客No(数値型)、顧客名(テキスト型)、質問1(数値型)、質問2、・・・   ○フォーム「データ抽出」の構造: [支店名1][支店名2] [顧客No1][顧客No2] [顧客名1][顧客名2]       【出力ボタン】 ※上記テキストボックスいずれかに入力された条件に合致するデータが          【出力ボタン】を押すとエクセルに出力されるという構造です。          ※ボタンのイベントに「抽出マクロ」を設定。 ○抽出クエリ: 支店 [Forms]![データ抽出]![支店名1]  Is Null [Forms]![データ抽出]![支店名2]  Is Null 顧客No [Forms]![データ抽出]![顧客No1]  Is Null [Forms]![データ抽出]![顧客No2]  Is Null 企業名 like "*" &[Forms]![データ抽出]![顧客名1]& "*" Is Null like "*" &[Forms]![データ抽出]![顧客名2]& "*" Is Null               ○マクロ(抽出マクロ):  クエリを開く (抽出クエリ)  コマンドの実行(エクセルに出力)  閉じる (抽出クエリ) と設定しました。そこで実行確認すると・・・・  (例)     (1)支店名1だけに入力して、他は空欄で出力ボタンを押下。     ⇒条件セグメントされず、全てのデータがエクセル出力されてしまう。     (2)全ての項目に入力して出力ボタンを押下     ⇒条件セグメントされたデータがエクセル出力される。  という現象が起こりました。  例示(2)は良いとして、(1)の様な空欄がある状態でも、条件にマッチした出力をしたいのですが上手くいいかず困っています。    尚、クエリの抽出条件を支店フィールドだけにした所・・ 支店  [Forms]![データ抽出]![支店名1]   Is Null  [Forms]![データ抽出]![支店名2]   Is Nul 支店名1に入力して支店名2は空欄であっても条件にマッチした出力結果が得られました。 長文恐縮でございますが、どなたか解決法をご教授いただきたく存じます。よろしくお願いいたします。

専門家に質問してみよう