• ベストアンサー

ACCESS2000 VBAで印刷時にサブレポートのレコードソースを設定するには?

 フォーム画面にある複数の入力項目から検索条件文を作成、データを抽出してレポートに明細一覧を出力します。  親レポートはDoCmd.OpenReportのConditionで設定出来るのですが、そのレポートフッターにはサブレポートがあり、明細の小計や種別計、総合計を出力するのですが、このサブレポートのレコードソース(またはフィルタ)を設定するにはどうすれば良いのでしょうか?  ・サブレポートのオープン時にMe.Recordsource="SELECT * FROM …" だとエラーになり、オープン時には指定できないとのことでした。 親レポートとは親子関係もなく、使用するクエリーも別です。 VBAで設定するのは難しいのでしょうか?よろしくお願いします。

  • yashi
  • お礼率100% (11/11)

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

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.3

>エラーになり、オープン時には指定できないとのことでした >親レポートとは親子関係もなく・・ サブレポートの開く時のイベントに Me.Recordsource="SELECT * FROM …" は設定できます。 別の原因を探してください。 サブレポートのリンクフィールドに値が入っているのではないでしょうか。サブレポートのプロパティでリンクフィールドを確認してください。リンクフィールドに何か値が入っていれば削除すれば問題なく出力できると思います。

yashi
質問者

お礼

返事が遅くなってすみませんでした。ここで質問を締め切りたいと思います。 改めてサブレポートの開く時イベントでレコードソースを指定した所、うまく動いてくれました。エラーが出た時はご指摘通りリンクフィールドに何か入っていたのだと思います。その後色々いじったので、確証はないのですが。。 大変助かりました。ありがとうございました。

その他の回答 (2)

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

私の方の勘違いでしょうか? Meは便利な変数ですがサブとメインでは、取ってくる値が違ったと思ったのですが…。 サブフォームコントロールを指定してみて、どうですか?

yashi
質問者

お礼

回答ありがとうございます。返事が遅くなってすみませんでした。

  • bonaron
  • ベストアンサー率64% (482/745)
回答No.1

ACCESS2000 VBAで出来ますよ。 もしかして、親レポートのサブレポートコントロールの リンク親(子)プロパティに何か書かれていませんか? 書かれていたら削除してください。

yashi
質問者

お礼

回答ありがとうございます。返事が遅くなってすみませんでした。

関連するQ&A

  • Access2007サブレポートの絞り込みついて

    Access2007のサブレポートの絞り込み(フィルタ)について教えて下さい。 いつも親切に教えて下さりありがとうございます。 Access2007でサブレポートを入れたレポートがあります。 フォームから絞り込み(フィルタ)をかけて印刷できるようにしているのですが、サブレポートが上手く作動しません。 主にフィルタは日付で検索します。 メインレポートとフォームは同じクエリから作成しています。 サブレポートは別のクエリからです。 リンクフィールドには顧客IDが親子で入っています。 フォームに印刷ボタンを設置し、DoCmd.OpenReport "レポート名", acViewPreview, , Me.Filter で、印刷出来るようにしています。 クエリには抽出条件は入れていません。 例えば12/17のみフィルタをかけた場合は、メインもサブを作動するのですが、 12/17と12/18など1つ以上の条件を選択してフィルタをかけると、メインのみ2日分表示されサブは12/17のみ表示されます。 サブレポートも同じようにフィルタをかけた場合に作動させるにはどうしたら良いでしょうか? 大変わかりづらい説明で申し訳ありません。 教えて下さい。よろしくお願い致します

  • ACCESS サブレポートの参照について

    ACCESS2003を使用しています。 メインレポートのページフッターにテキストボックスを配置して、サブレポートの小計を参照して表示しています。 しかしサブレポートにデータがない時があり、【#エラー】という表示になってしまいます。 そこで、サブレポートにデータがない時は、【0】という表示にしたいのですが、どういった方法があるか、教えてください。 よろしくお願いします。

  • Accessのメインレポートとサブレポート

    Accessでメインレポートとサブレポートがあるレポートを作っています。 メインレポートのページが変わるたびに、サブレポートのレコードソースを変更して、サブレポートの再表示をさせたいのですが、どうやればいいのでしょうか? ちなみにメインのほうで以下のように記述しましたが、 (3)でエラーになります。 (エラー内容:記述ミス、または開いていない) Private Sub Report_Page() (1) Dim strSQL As String (2) strSQL = "SELECT * FROM Meisai" _ & " WHERE DenNo = " _ & Format(Reports!r日報!DenNo.Value, "000000") (3) Reports!r明細!.RecordSource = strSQL End Sub

  • MS ACCESS 2003 サブレポート機能でメインレコードと関係の

    MS ACCESS 2003 サブレポート機能でメインレコードと関係のないレコードも表示される どなたかアクセスに詳しい方、教えて頂けませんでしょうか。 MS ACCESS 2003 にて、帳票印刷システムを構築しております。 ・請求ヘッダテーブル・・・顧客ID、顧客会社名、顧客氏名、住所 等 ・請求明細テーブル・・・顧客ID、請求明細名、単価、数量、小計 等 となっております。 こちらの状態で、顧客ID別(1人ずつ)に、紙面の上部に請求ヘッダテーブルの情報を羅列し、 紙面の下部に表形式で請求明細テーブルを表示するような形式の「レポート」を作成したいと考えております。 そこで、メインレポート/サブレポート機能を使って、上記を実現したいと思い、以下のような手順でトライしているのですが、サブレポート部分(デザインビューで見た場合の「詳細」部分)に、でメインレポート部分の顧客IDの請求明細データではないレコード(違う顧客IDの請求明細)まで表示されてしまいます。 ■リレーションを作成 ・メニュー「ツール」⇒「リレーションシップ」にて、請求ヘッダ-請求明細をひもづけ。 ・参照整合性にチェック。 ・結合の種類は「請求明細の全レコードと請求ヘッダの同じ結合フィールドのレコードだけを含める」。 ■レポートを作成 ・レポート⇒新規作成⇒レポートウィザードでレポートを作成。請求ヘッダのみの情報で作成。 ・デザインビューの詳細部分にて、サブレポートを呼び出し。請求明細テーブルを選択し、顧客ID、請求明細名、単価、数量、小計 等を選択。 上記のようにすると、顧客IDとは関連なく(正しい詳細データもそうでないデータも合わせて)10件の請求明細データが表示されます。 また顧客ID=1の場合も、次のページの顧客ID=2の場合もすべて同じ10件の明細データが現れます。 インプレスのアクセス本を参照しながら作業しているのですが、詳しくない分非常に苦労しております。 どなたか、なにとぞよろしくお願いいたします。

  • Accessサブレポートの内容が重複して表示される

    いつもお世話になってます。 現在、Access 97で注文書の作成機能を作っています。 注文書の元になる宛先などのテーブル(仮に「注文書」とします)と、注文するものの明細データは別テーブル(「明細」とします)で管理し、「注文書」テーブルの「ID」をオートナンバー型として、 「明細」テーブルに紐付けをしています。 このデータを元にレポートを作っており、レポート「注文書」の「詳細」部分に、サブレポート「明細」を入れました。 リンクの親フィールド、子フィールドは共に「ID」です。 これを実際に印刷プレビューしてみると、明細の内容は注文書「ID」に紐付けられた内容がしっかり表示されるのですが、 サブレポート「明細」の内容が2回繰り返して表示されてしまいます。 サブレポートには、ヘッダに「下記の通り注文いたします。」などと入れて、詳細部分に明細が表示されるようにしています。 こういったヘッダや明細が、メインレポートで表示すると、同じ内容が2度出力されてしまうのです。 (2重に見えるわけではなく、明細の出力が終わったあと改めて同じ内容が表示されます。サンプルの画像を表示します。商品番号は[ID]とは別で採番しているものです。) メインレポートへのサブレポートの埋め込みは1つだけです。 どなたか原因がわかる方がいらっしゃればご教授いただきたく思います。 よろしくお願いいたします。

  • ACCESS2000でサブレポートに連番を付与する方法

    ACCESS2000でレポートを作成しています。 サブレポートの各行に項番を出力したいのですが、やり方がわからないので教えてください。 コントロールソースとなるテーブルには、項番は存在しません。 カウンタ用の変数を設け、レポートオープン時に初期化、サブレポートの詳細セクションのフォーマット時にカウントアップして、サブレポートの連番エリアにセットするコーディングをしたのですが、それだと、以下のようになってしまいます。 <詳細セクションの印刷時拡張プロパティ=はいの場合> 先頭のレコードの項番が1からスタートせずに、1ページに出力されているレコード数+1となっています。 <詳細セクションの印刷拡張時プロパティ=いいえの場合> 項番は1から付与されるのですが、複数ページにおよぶ場合、2頁目以降が出力されない どなたかお知恵をおかしください。

  • accessレポートの抽出条件

    こんにちわ。 いまaccess2000で, フォームからレポートを出力する処理をしています。 そのレポートは[コントロールソース]としてあるクエリを設定しています。 そこで, DoCmd.OpenReport "r_帳票", acPreview, , "[番号] = 'a100'" とコーディングしました。 なおレポートの[フィルタ]プロパティは"はい"にしています。 ところが,出力されたレポートには条件で抽出されずに 全件が出力されてしまいました。 抽出条件を効かせるためにはどうすれば良いでしょうか? 教えてください。お願いします。

  • アクセスのMDEファイルでレポート印刷したい。

    MDEファイルからレポート印刷できません。 下記構文の下から4行目「acViewDesign」を開けないからだと思います。 回避しようと「acViewDesign」を省くようにいろいろ試みているのですが、 レポート印刷はできるようになっても、 レポート内容(詳細セクション)が空になってしまいます。 どなたかご教授くだされば幸いです。 よろしくお願いいたします。 ---------------------------------------------------------------------- Dim strDate As String strDate = "#" & Month(Me.txt日付) & "/" & Day(Me.txt日付) & "/" & Year(Me.txt日付) & "#" Sql = "SELECT * FROM q棚卸_結果表示 WHERE 日付 = " & strDate & " " & strWhere & "ORDER BY メーカー名, カナ" DoCmd.OpenReport "r棚卸_結果表示", acViewDesign [Reports]![r棚卸_結果表示].[RecordSource] = Sql DoCmd.OpenReport "r棚卸_結果表示", acViewPreview End Sub ----------------------------------------------------------------------

  • access レポートで表示されないデータ

    2つのクエリの情報をメインとサブでレポート作っています。 2つのクエリは名前テーブルでそれぞれのテーブルとリレーションしています。 ただ、2つのクエリに情報が入っているものは表示されるのですが、 サブレポートに設定しているクエリの情報しかないものはレポート出力されません。 なにが問題なのでしょうか?よろしくお願いします。

  • Access2007レポート特定レコードのPdf化

    Access2007を使用して台帳管理を行っています。 その際にレポートをPdf化して電子保存を行っていますが、いちいちメニューからレコード指定しでファイル出力するのが煩雑なのでVBAを勉強して自動化しようと思っています。 実装したい機能はフォーム上に配置されたボタンを押したら、そのIDのレポート(PDFファイル)が指定のフォルダに保存されるものです。 初心者なりにいろいろ調べて下記のコードに行きついたのですがうまくID選択されません(全レコード保存される)。 ご教授お願いします。 Sub Pdf作成() DoCmd.OpenReport "レポート名", acViewPreview, , "ID=" & Me!ID DoCmd.OutputTo acOutputReport, "レポート名", acFormatPDF, "保存path&ファイル名.pdf" End Sub

専門家に質問してみよう