• ベストアンサー

ACCESSで表示されているフォームだけをレポートに出したい

アクセスで、入力したフォーム内容をすぐにレポートで印刷できるよう、コマンドボタン作成ウィザードで、レポートの操作→レポートのプレビューを行ったのですが、IDが1のものが表示されてしまいます。。 これを、表示されているフォームIDのものをプレビューさせることはできますでしょうか? 色々調べてみたのですが、分からなかったので。。 宜しくお願いします!

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

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

> 色々調べてみたのですが、分からなかったので 調べ方が良くなかったのでしょうね ウィザードで作成すると Private Sub コマンド61_Click() On Error GoTo Err_コマンド61_Click Dim stDocName As String stDocName = "フォーム名" DoCmd.OpenReport stDocName, acPreview Exit_コマンド61_Click: Exit Sub Err_コマンド61_Click: MsgBox err.Description Resume Exit_コマンド61_Click End Sub こんなコードが出来ていると思います。 それぞれの単語の上にカーソルを持っていって、F1 キーを押すとそれぞれのヘルプが 現れます。 でAccess2002の場合ですが、OpenReportのヘルプで WhereCondition で何かを指定すると何とかなりそうなのが分かります。 関連項目を見ると「"OpenReport/レポートを開く" アクション」が有ります。 ここに貴方の望むものが載っています。 ヘルプより抜粋 ------------------------- レポートを開き、レポートのコントロールの値を使ってレコードを制限するには、次の構文を使用します。 ['(フィールド名)'] = Forms!['(フォーム名)']!['(フォームのコントロール名)'] '(フィールド名)' には、開くレポートの基になるテーブルまたはクエリにあるフィールド名を指定します。 <フォームのコントロール名> には、レポートのレコードを制限するための値を持つ、フォームのコントロール名を指定します。 -------------------------- なので DoCmd.OpenReport stDocName, acPreview を DoCmd.OpenReport stDocName, acPreview, , "[ID]=" & Forms![フォーム名]![ID] にすれば良いのが分かるかと思います。なお、下記の書き方もあります DoCmd.OpenReport stDocName, acPreview, , "[ID]=" & Me!ID

hipongak
質問者

お礼

> 調べ方が良くなかったのでしょうね 申し訳ありません‥。 こんな至らない私にも、長文のご回答で応えてくだすって嬉しいです。 で、結果ですが‥ >DoCmd.OpenReport stDocName, acPreview, , "[ID]=" & Forms![フォーム名]![ID] の入力で完璧にいけました!!すごい!!! これって基本的なことなのかもしれませんが、実は2時間弱迷い続けていたんです‥。 この先思いやられますが、こうやってひとつひとつ(できれば一人で)解決していければと思います! ありがとうございました!

その他の回答 (1)

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.2

フォームで表示されているものだけをレポートに出力したい場合には フォームでどのように絞り込んでいるかによって方法が変わります フィルタで絞り込んでいるのなら、 レポートのフィルタにフォームのフィルタをコピーしてやります Private Sub Report_Open(Cancel As Integer) Me.Filter = Forms![フォーム名].Filter Me.FilterOn = True End Sub フォームのソースをクエリにし、抽出条件で絞っているのなら 同じ抽出条件のクエリをレポートのソースにします

hipongak
質問者

お礼

No1の回答者様の方法でイケました! ご回答本当にありがとうございます!

関連するQ&A

  • ACCESS97で単表フォーム上からレポート印刷をする。

    ACCESS97でマクロを使用しています。 単表フォーム上にコマンドボタン(レポートを開くマクロを使用し、単表フォームのIDを入力し印刷しています。)を配置しています。 レポートを印刷するのに、IDの入力を省略したい、どうすれば良いでしょうか。 マクロまたはVisual Basicでお願いします。

  • ACCESS 指定レコードのレポート印刷

    OKWaveでも他の方が質問していますが、同様な対応をしても、どうも正常動作しません。 内容:1.フォーム作成完了 → 2.レポート作成完了 → 3.現在フォームに表示されているレコードを(2)で作成したレポート形式で印刷(プレビュー)をしたい。 レポート名:看板 フォーム名:管理    フォーム画面上には ID を表示させています。 テーブル名:管理TBL 管理TBLには ID というフィールドはあります。 実施内容:下記内容を印刷コマンドボタンのイベントプロシジャーに記述。 Private Sub report_Click() Dim stDocName As String   DoCmd.OpenReport "看板", acViewPreview, , "[ID]=" & [Forms]![管理]![ID] End Sub 例えば、レコード3のフォーム上で上記内容のコマンドボタンをクリックすると、IDのパラメータのポップアップが表示され3を入力後、看板のレポートプレビューが表示されますが、固定データのみ表示されているレポートで当該レコードの内容が反映されたレポートが表示されません。 レコード1のフォーム上で実施したら、IDパラメータポップに1を入れると全レコードのレポートがプレビューされます。 どうしたら、カレントレコードの内容のみを反映したレポートをプレビューさせることができるのでしょうか、ご教授下さい。また IDパラメータポップアップも表示させたくありません。

  • Accessのフォームとレポートについて

    Accessでフォームに学年のクラスをリストボックスで表示させ、選択してコマンドボタンを押すとそのクラスの生徒一覧がレポートとしてプレビュー表示される仕組みをつくりたいのですがどのような手順で作成していけばよいでしょうか? (表示させるための全生徒のデータテーブルは作成済みです)

  • ACCESSのレポートについて

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

  • <ACCESS>フォームのコマンドボタンについて

    宜しくお願いします。 フォームを作成するとき、ツールボックスから「コマンドボタン」を選択し、貼り付けると、前はウィザードが表示され、このボタンをクリックするとレポート印刷するとか、色々なことをウィザードで簡単にできたのですが、それが表示されなくなりました。 どうすれば表示されるのでしょうか?

  • Access2000でモーダルフォームの上にレポートを表示したい!!

    フォーム[棚卸集計](←モーダルフォーム)のコマンドボタンで、レポートプレビューをすると、レポートがフォーム[棚卸集計]の下に出てきてしまいます。 普通のフォームをプロパティーでモーダルフォームに変えたように レポートも変えれないのでしょうか? 「レポートを最大化し、一番上に表示したいのです」 どなたか解る方、お願いです教えて下さい。もう、お手上げです。。。 初心者なので・・出来れば噛み砕いて書いてくださるとありがたいのですが・・・ よろしくお願いします。

  • アクセス2007のレポート

    アクセス2007を使ってレポート(葉書)印刷をしようと、「作成」メニューから「はがきウィザード」にしたがってレポートを作成し、いざ印刷プレビューを行うと、「このデータベースは署名されていないか、信頼できる場所にありません。そのため、このレポートの一部の項目を表示できません。」というメッセージが出て、宛名が表示されません。 この原因と対策について、ご教示ください。よろしくお願いします。

  • Access2010でのレポートプレビュー表示

    環境 Windows7 64bit Access2010(試用版) 現在、会社で使用しているシステム(Access2002)をAccess2010に バージョンアップした場合の動作チェック、改修作業を行っています。 レポートのプレビュー表示で印刷される書類の確認をするのですが、 バージョンアップした場合はレポートにフォームの値が設定されなくて困っています。 流れとしては以下の通りで、 1.開いているレポートを一度閉じる。 2.レポートをプレビュー表示で開く(非表示状態)。 3.フォームのテキストボックス等に入力されている値をレポートにセット。 4.レポートを1度デザインビューで開く(非表示状態)。 5.レポートをプレビュー表示で開く。 ←3でセットしたはずのフォームの値が表示されない となっています。 Valueプロパティを確認すると、 3の時点ではウォッチウィンドウで値がセットされていて、 4では「デザインモードでこのプロパティは使用できません」となり、 5の時にはNullになってしまいます。 フォームに入力されている値は、テーブルに登録されていない値です。 プレビューを確認した後に登録するという流れになります。 どうすればフォームに入力されている値をレポートのプレビューに表示できるのでしょうか。 ご教示お願いいたします。

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

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

  • ACCESSでフォーム入力→レポート出力したい

    ACCESSでフォーム入力→レポート出力したい OS:XP,ACCESS2000 フォームのテキストボックスに入力した文字をレポートのテキストボックスに表示したい。 フォーム: ファイル名は「フォーム1」で、その中に作ったテキストボックス名は「入力データ」 コマンドボタン名は「レポート出力」 レポート: ファイル名は「レポート1」で、その中に作ったテキストボックス名は「出力データ」 フォーム1とレポート1を立ち上げてフォームのテキストボックスにデータを入力した後、 コマンドボタンを押してもレポート1のテキストボックスに入力したデータが表示されません。 レポート1を選択した後にデザインボタンを押し、その後にもう一度立ち上げると、 なぜかデータが書き込まれています。 コマンドボタンを押したのと同時にレポート1にデータが表示されるようにするには どうすれば良いですか? プログラムは以下の様になっております。 (1)クラスオブジェクト下 Private Sub コマンドボタン_Click() Call レポート書き出し() End Sub (2)標準モジュール下 Public Function レポート書き出し() Dim F As Form Dim R As Report Set F = Forms![フォーム1] Set R = Reports![レポート1] R![出力データ] = F![入力データ] End Function

専門家に質問してみよう