- ベストアンサー
ACCESSで表示されているフォームだけをレポートに出したい
アクセスで、入力したフォーム内容をすぐにレポートで印刷できるよう、コマンドボタン作成ウィザードで、レポートの操作→レポートのプレビューを行ったのですが、IDが1のものが表示されてしまいます。。 これを、表示されているフォームIDのものをプレビューさせることはできますでしょうか? 色々調べてみたのですが、分からなかったので。。 宜しくお願いします!
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> 色々調べてみたのですが、分からなかったので 調べ方が良くなかったのでしょうね ウィザードで作成すると 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
その他の回答 (1)
- CHRONOS_0
- ベストアンサー率54% (457/838)
フォームで表示されているものだけをレポートに出力したい場合には フォームでどのように絞り込んでいるかによって方法が変わります フィルタで絞り込んでいるのなら、 レポートのフィルタにフォームのフィルタをコピーしてやります Private Sub Report_Open(Cancel As Integer) Me.Filter = Forms![フォーム名].Filter Me.FilterOn = True End Sub フォームのソースをクエリにし、抽出条件で絞っているのなら 同じ抽出条件のクエリをレポートのソースにします
お礼
No1の回答者様の方法でイケました! ご回答本当にありがとうございます!
お礼
> 調べ方が良くなかったのでしょうね 申し訳ありません‥。 こんな至らない私にも、長文のご回答で応えてくだすって嬉しいです。 で、結果ですが‥ >DoCmd.OpenReport stDocName, acPreview, , "[ID]=" & Forms![フォーム名]![ID] の入力で完璧にいけました!!すごい!!! これって基本的なことなのかもしれませんが、実は2時間弱迷い続けていたんです‥。 この先思いやられますが、こうやってひとつひとつ(できれば一人で)解決していければと思います! ありがとうございました!