- ベストアンサー
Accessのレポートで再読み込み
フォームにあるデータを入力し、そのデータをレポートに表示したいのですが、ただ指定しただけでは表示されませんでしたが、 レポートを一度デザインビューにし、その後再度プレビューにしたら表示されました。 これをコードでかくにはどうしたらいいでしょうか? Docmd.Requery としたら「再クエリは無効です」と出ました。 フォームの値をレポートに移すのは Reports![R_マスタ_一覧]![検索条件] = Kensaku Me![検索条件].Value = Kensaku どちらも試しましたが、表示されませんでした。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
レポートの [検索条件] がレポートヘッダーにあるのなら、 レポートヘッダーの印刷時イベントで Me.[検索条件] = Kensaku のようにしてみてください。 ページヘッダーだと、なぜかうまくいかないようです。(なんなんでしょね・・・)
その他の回答 (3)
- tsukasa-12r
- ベストアンサー率65% (358/549)
ちょっと補足 >>レポートヘッダーの印刷時イベントで >印刷時ではなく、レポートを表示した時点で、 >検索条件を表示したいのですが無理なのでしょうか? 印刷時イベントって、実際にはプレビューで画面表示するときにも起きますので。
お礼
回答ありがとうございます。 >印刷時イベントって、実際にはプレビューで画面表示するときにも起きますので。 そうなんですか?知りませんでした。 試してみます。 ありがとうございました。
補足
無事できました! ありがとうございました!!
- maruru01
- ベストアンサー率51% (1179/2272)
No.1です。 レポートはどのように開いていますか? DoCmdオブジェクトのOpenReportメソッドで開いているのなら、 第4引数に、検索条件文字列(SQLのWHERE句に相当する文字列)を指定すればいいと思います。 ん? >レポートで検索条件を表示させたくて、 検索して抽出した結果ではなく、検索条件そのものですか? それなら、記述するイベントは、詳細_Formatイベントだと思います。 でも、これだと全部のレコードにいちいち検索条件が表示されますが。 レポートのOpenイベントで、ヘッダーに表示した方がいいような気がしますが。
お礼
回答ありがとうございます。 レポートを開くコードは : : WhereCond = Mid(WhereCond, strCount + 1) DoCmd.OpenReport "R_マスタ_一覧", acPreview, , WhereCond となってます。 >検索して抽出した結果ではなく、検索条件そのものですか? 両方です。 検索条件=【*******】 名前1 名前2 名前3 : : という感じにしたいんです。
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 フォームは、テーブルと連結していますか? 連結しているのなら、そのテーブルをレポートのレコードソースに指定しておけばいいのでは? フォームに入力したばかりのデータは、保存されていないかも知れないので、その場合は、レポートを開く前に、 DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 を入れて、保存しましょう。
お礼
回答ありがとうございます。 フォームはテーブルデータから検索して抽出するための検索フォームです。 ですので連結はしていません。(レポートはテーブルと連結していますが) フォームで検索条件を入力→レポートで結果を表示、というときにレポートで検索条件を表示させたくて、 Private Sub Report_Page() Me![検索条件].Value = Kensaku とし、実行すると、レポートの1ページ目には表示されませんが、2ページ目以降にはきちんと表示されるんです。
お礼
回答ありがとうございます。 ページヘッダーにあったのでレポートヘッダーに移動しました。 >レポートヘッダーの印刷時イベントで 印刷時ではなく、レポートを表示した時点で、検索条件を表示したいのですが無理なのでしょうか? フォームの検索実行ボタンのイベントにたしてみたりもしましたが、表示されません。
補足
ちょっとずるいですが、 検索フォームのところに「検索条件」というフィールドを作成。(見えないようにする) レポートの検索条件を表示したいところに Forms![検索条件入力]![検索条件] として、とりあえず表示はさせることができました。 でもどうも納得行かないので、「とりあえず」の策とします…(^^;