dポイントプレゼントキャンペーン実施中!

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

色々調べてみたのですが、分からなかったので。。
宜しくお願いします!

A 回答 (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
    • good
    • 2
この回答へのお礼

> 調べ方が良くなかったのでしょうね
申し訳ありません‥。

こんな至らない私にも、長文のご回答で応えてくだすって嬉しいです。
で、結果ですが‥

>DoCmd.OpenReport stDocName, acPreview, , "[ID]=" & Forms![フォーム名]![ID]
の入力で完璧にいけました!!すごい!!!

これって基本的なことなのかもしれませんが、実は2時間弱迷い続けていたんです‥。
この先思いやられますが、こうやってひとつひとつ(できれば一人で)解決していければと思います!

ありがとうございました!

お礼日時:2007/03/31 14:36

フォームで表示されているものだけをレポートに出力したい場合には


フォームでどのように絞り込んでいるかによって方法が変わります

フィルタで絞り込んでいるのなら、
レポートのフィルタにフォームのフィルタをコピーしてやります
Private Sub Report_Open(Cancel As Integer)
Me.Filter = Forms![フォーム名].Filter
Me.FilterOn = True
End Sub

フォームのソースをクエリにし、抽出条件で絞っているのなら
同じ抽出条件のクエリをレポートのソースにします
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/03/31 18:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!