• 締切済み

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

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

みんなの回答

  • m3_maki
  • ベストアンサー率64% (295/459)
回答No.1

> フォームとレポートが同じレコードソースだと使えるという事ですが、 状況により、レコードソースが異なっていても 使える場合もあります。 例えば、 フォームで、「日付」 フィールドでフィルタをかけていて レポートでは、「日付」フィールドが存在せずに、 「受注日」 という名称だった場合、 たとえ 「日付」 が受注日を表すものだったとしても 抽出できませんね。 その場合は、レポート用のフィルタ文字列を 新たに組み立てる必要があります。 同じフィールド名で、同じ内容のものを表す場合は可能でしょう。 同じフィールド名 「日付」でも 一方が「受注日」 で 他方が「出荷日」 を表しているような場合には エラー、あるいはパラメータ要求 にはなりませんが 正しい結果が得られないことは言うまでもありません。

maruzen22182688
質問者

補足

ご回答ありがとうございます。 >同じフィールド名 「日付」でも 一方が「受注日」 で 他方が「出荷日」 を表しているような場合には エラー、あるいはパラメータ要求 にはなりませんが 正しい結果が得られないことは言うまでもありません。 →ご説明頂いた内容は理解しております。 同じフィールド名で、同じ内容のものですが、フィルタをかけると レポートに上手く抽出されないので質問しました。 例えば 同じフィールド名で、同じ内容のもの(同じテーブルの同じフィールド)を『日付』とします。 1/10分と1/11分フィルタをかけてレポートを開くと 1/10分のみ表示されるので、2日分表示させるには どうしたらよいかと思い質問した次第です。

関連するQ&A

  • ACCESS でフォームフィルターをレポートに引き継ぐ方法

    こんにちは。 いつもありがとうございます。 現在、ACCESSで名簿管理ソフトを作っています。 フォームで条件を指定し、該当する人を抽出できるようになっているのですが、その条件をそのままレポートのソースに使用するにはどうれすばいいでしょうか? DoCmd.OpenReport "rpt_名簿", acViewPreview,, Me.Filter としているのですが、実行時エラー 438が出てしまいます。

  • Accessのレポート印刷について

    Access2007を使用しています。 DoCmd.OpenReport "レポート名", acViewNormal, , Me.Filter で絞り込みをした内容のレポートで1枚目だけが印刷されるようにしたいのですが、 どうしたら良いですか? 2枚目・3枚目は印刷したくないので、1枚目だけが印刷されるようにしたいです。 よろしくお願いします。

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

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

  • アクセスについてです(レポート)

    フォームからレポートを開く時に、 VBAでコントロールにコントロールソースを指定したいのですが どうやらエラーになってしまうようです。 フォームからではなく手動でレポートを開く場合は エラーにはなりません。 レポートのレコードソースは、T_testを指定していて、 その上にあるコントロールは非連結で指定したコントロールソースをvbaで入れたいです。 なので、レポートのLoadイベントで Private Sub Report_Load() Me.テキスト0.ControlSource = "8月" End Sub として、手動でレポートを開く分には問題ないのですが このコードのまま、フォームから Private Sub コマンド0_Click() DoCmd.OpenReport "レポート1", acViewPreview End Sub とすると、Me.テキスト0.ControlSource = "8月"で、 実行時エラー2191 印刷プレビュー時または印刷を開始した後は コントロールソースプロパティを設定できません。 のエラーが発生します。 フォームから Private Sub コマンド0_Click() DoCmd.OpenReport "レポート1", acViewDesign End Sub とすると、レポートのLoadイベントが発生しませんでした。 ご回答よろしくお願いします。

  • アクセス2007 フォームフィルターをレポートにも

    アクセス2007 フォームフィルターをレポートにも フォームA---「家」データ        「家ID」 佐藤さん、斎藤さん、住所、電話等 フォームB---「家族内」データ        各家の家族構成 お父さんの誕生日、お母さんの誕生日などなど「家ID」有り フォームBでフィルターをかけ、「家ID」を元にフォームAで該当するデータを表示させています。 ----------------------------------------------------   Set rs = Forms.フォームB.RecordsetClone   Do Until rs.EOF     フィルタ = フィルタ & "," & rs!家ID rs.MoveNext Loop rs.Close   フィルタ = "家ID IN (" & Mid$(フィルタ, 2) & ")"   DoCmd.OpenForm "フォームA", WhereCondition:=フィルタ, ---------------------------------------------------- ※フィルタは255文字を超える場合有り このフォームAを元に レポートC(はがき宛先)で DoCmd.OpenReport "レポートC", acViewPreview, WhereCondition:=フィルタ(または、forms.フォームA.Filter) とすると「フィルターが長い」とエラーになります。 OpenFormでのWhereCondition:=は長くても受け付けますが、OpenReportの方は受付ないみたいです。 リレーションの知識不足のまま、進めてきたシッペ返しが今きているのですが、 こんな場合どうしたらフォームの検索条件をレポートに反映できるでしょうか?

  • Accessのコード入力

    アクセス初心者です。 レポート内の検索結果を再びレポートで表示したいため、フォームのコードで下記のようにしたのですが、フォームで前後の文字を入れなくても検索できるようにするにはどのようにしたら良いでしょうか。 (テーブルなどで検索する時の、*a* のような感じです) DoCmd.OpenReport "R1", acViewDesign Reports!R1.FilterOn = True Reports!R1.Filter = "[a]='" & Me.テキスト1.Value DoCmd.OpenReport "R1", acViewPreview 宜しくお願い致します。

  • ACCESSのレポートについて

    ACCESSでフォームから印刷ボタンを押すとレポートの印刷プレビューが表示されるという簡単なアプリケーションを作成したんですが、レポートの余白・向きを保存→アクセスを終了→アクセスを起動→レポートを表示→レポートを閉じる→レポートを表示という操作をすると、ページ設定で設定し保存した余白・ページの向きが元に戻ってしまいます。どうすればちゃんと保存できるのでしょうか? ちなみにDoCmd.OpenReport "hoge", acViewPreviewでレポートを表示させてます。

  • access2003フォームの指定表示のみ印刷プレビューしたいのですが・・・?

     Access2003初心者なので詳しく教えていただきたいのです。  フォームで詳細に「請求月」とあり、コンボボックスでフィルターを  かける様にしています。  (請求月(H20.5月と書式設定)している)  フォーム上では、ちゃんとフィルターがかかり  指定データだけが詳細に表記しているのです。  フォーム上に「印刷ボタン」を作りイベントでクリックしたら  フォームの情報のみレポートプレビューしたいのですが  レポートに移動するとすべて表示されるのです。  指定したレコードだけレポートに表示したいのですが  どうしたらよいのでしょうか?  Private Sub BTN_印刷_Click() DoCmd.OpenReport "RPT_●●請求済", acViewPreview End Sub  上記ステートメントまではわかるのですが・・・?  申し訳ないのです、よい方法を教えていただけませんか。  説明不足かもしれませんがよろしくお願いいたします。

  • accessレポートの抽出条件

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

  • access2000で作成したVisual Basicがaccess2007で使えないのはなぜ?

    教えてください。 access2000で作成したVisual Basicがaccess2007で使えないのです。 フォームにボタンを設定し、(1)(2)ボタンをクリックすればイベントを行う機能にしました。 (1)検索  DoCmd.OpenReport "レポート名", acViewPreview, "フィールド名" (2)印刷  DoCmd.OpenReport "レポート名", acViewNormal, "フィールド名" もちろんセキュリティオプションでコンテンツを有効にしています。 なぜか、関連付けされていないオブジェクトにフォームが入っています。 2000ではできるのに、なぜか2007ではできません。 どうしてでしょうか。教えていください。

専門家に質問してみよう