• ベストアンサー

Accessのレポートで再読み込み

フォームにあるデータを入力し、そのデータをレポートに表示したいのですが、ただ指定しただけでは表示されませんでしたが、 レポートを一度デザインビューにし、その後再度プレビューにしたら表示されました。 これをコードでかくにはどうしたらいいでしょうか? Docmd.Requery としたら「再クエリは無効です」と出ました。 フォームの値をレポートに移すのは Reports![R_マスタ_一覧]![検索条件] = Kensaku Me![検索条件].Value = Kensaku どちらも試しましたが、表示されませんでした。

  • w-inty
  • お礼率72% (1169/1618)

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

  • ベストアンサー
回答No.3

レポートの [検索条件] がレポートヘッダーにあるのなら、 レポートヘッダーの印刷時イベントで Me.[検索条件] = Kensaku のようにしてみてください。 ページヘッダーだと、なぜかうまくいかないようです。(なんなんでしょね・・・)

w-inty
質問者

お礼

回答ありがとうございます。 ページヘッダーにあったのでレポートヘッダーに移動しました。 >レポートヘッダーの印刷時イベントで 印刷時ではなく、レポートを表示した時点で、検索条件を表示したいのですが無理なのでしょうか? フォームの検索実行ボタンのイベントにたしてみたりもしましたが、表示されません。

w-inty
質問者

補足

ちょっとずるいですが、 検索フォームのところに「検索条件」というフィールドを作成。(見えないようにする) レポートの検索条件を表示したいところに Forms![検索条件入力]![検索条件] として、とりあえず表示はさせることができました。 でもどうも納得行かないので、「とりあえず」の策とします…(^^;

その他の回答 (3)

回答No.4

ちょっと補足 >>レポートヘッダーの印刷時イベントで >印刷時ではなく、レポートを表示した時点で、 >検索条件を表示したいのですが無理なのでしょうか? 印刷時イベントって、実際にはプレビューで画面表示するときにも起きますので。

w-inty
質問者

お礼

回答ありがとうございます。 >印刷時イベントって、実際にはプレビューで画面表示するときにも起きますので。 そうなんですか?知りませんでした。 試してみます。 ありがとうございました。

w-inty
質問者

補足

無事できました! ありがとうございました!!

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

No.1です。 レポートはどのように開いていますか? DoCmdオブジェクトのOpenReportメソッドで開いているのなら、 第4引数に、検索条件文字列(SQLのWHERE句に相当する文字列)を指定すればいいと思います。 ん? >レポートで検索条件を表示させたくて、 検索して抽出した結果ではなく、検索条件そのものですか? それなら、記述するイベントは、詳細_Formatイベントだと思います。 でも、これだと全部のレコードにいちいち検索条件が表示されますが。 レポートのOpenイベントで、ヘッダーに表示した方がいいような気がしますが。

w-inty
質問者

お礼

回答ありがとうございます。 レポートを開くコードは : : WhereCond = Mid(WhereCond, strCount + 1) DoCmd.OpenReport "R_マスタ_一覧", acPreview, , WhereCond となってます。 >検索して抽出した結果ではなく、検索条件そのものですか? 両方です。 検索条件=【*******】 名前1 名前2 名前3   :   : という感じにしたいんです。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 フォームは、テーブルと連結していますか? 連結しているのなら、そのテーブルをレポートのレコードソースに指定しておけばいいのでは? フォームに入力したばかりのデータは、保存されていないかも知れないので、その場合は、レポートを開く前に、 DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 を入れて、保存しましょう。

w-inty
質問者

お礼

回答ありがとうございます。 フォームはテーブルデータから検索して抽出するための検索フォームです。 ですので連結はしていません。(レポートはテーブルと連結していますが) フォームで検索条件を入力→レポートで結果を表示、というときにレポートで検索条件を表示させたくて、 Private Sub Report_Page() Me![検索条件].Value = Kensaku とし、実行すると、レポートの1ページ目には表示されませんが、2ページ目以降にはきちんと表示されるんです。

関連するQ&A

  • Accessでフォームに入力したものをレポートへ表示させるには。

    検索フォームで入力した検索条件を結果を表示するレポートに表示したいのです。 検索フォームの検索実行ボタンの最後に Reports![R_マスタ_一覧]![検索条件] = Kensaku というように入れてみました。 ※Kensakuは検索条件です。 Msgbox Kensaku とするときちんと表示されるのですが、上記のReports!…だとエラーは出ませんが、表示がされません。(何も出てこない) どうしてでしょうか? Access2000です。

  • Accessのコード入力

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

  • レポートの必要性

    テーブル→クエリのデータを帳票ビューでフォームに表示しています。 フォームで表示している内容はまとまっています。 さらにこの内容をレポートで表示させてくれと言われているのですが、 フォームビューでCTRL+Pで印刷するのと、レポートでは何が違うのでしょうか? フォームでそのまま印刷すると、位置がズレたりするのでその辺は微調整をするとして、 フォームビューじゃダメでレポートだといい点がわからないので教えてください。 レポートは、フォームで表示しない場合に必要なのでしょうか? テーブル→クエリ→レポートもしくはフォーム という構成になるのが一般的ですか? 今やろうとしていることは、 テーブル→クエリ→フォーム→レポートです

  • Accessを使ってレポートを印刷する際に。。。

    No.2353071の続きなのですが、 Private Sub コマンド0_Click()   DoCmd.OpenReport "レポート1", acViewDesign   Reports("レポート1").Controls("ラベル0").Caption = "AAA"   DoCmd.Close acReport, "レポート1", acSaveYes End Sub このようにすると「DoCmd.OpenReport "レポート1", acViewDesign」を実行する際に、デザインビューで開く画面が表示されるのですが、この画面を消すことはできないのでしょうか。

  • アクセス 開いているレポート名を取得する。

    アクセス初心者です。 VBAにて フォーム1でレポート、レコードを選択後に レポートを開くと同時に印刷フォームも開くように組んでます。 その印刷フォームで印刷をすると、印刷フォーム自体が印刷されてしまうので ”レポート名”を認識させてから印刷しています。 その時の”レポート名”を開いたときに自動的に変数として印刷フォームに引き継ぎたいのですが やり方が分かりません。 意図としては、印刷フォームを汎用的に使いたいためです。 印刷フォームの呼び出しコードは下記にて Private Sub コマンド18_Click() Dim report_name As String Dim report_value As String If Not IsNull(コンボ50.Value) = True Then report_name = コンボ48.Value  ’レポート名です report_value = コンボ50.Value DoCmd.OpenReport report_name, acViewPreview, , "[現場名]='" & report_value & "'" DoCmd.MoveSize Width:=10000, Height:=13000 Reports(report_name).ZoomControl = 75 Else MsgBox "項目を選択してください。" End End If DoCmd.OpenForm "印刷_フォーム", acNormal End Sub Private Sub コマンド53_Click() Dim new_date As String Dim form_name As String If Not IsNull(コンボ48.Value) = True Then form_name = コンボ48.Value DoCmd.OpenForm form_name, acNormal, , , acFormAdd DoCmd.MoveSize Width:=12000, Height:=13000 Else MsgBox "[取引先名]を入力してください。" End If End Sub 下記は印刷フォームにて、印刷設定をする場合のコードです Private Sub コマンド0_Click() Dim report_name As String report_name = "レポート名" On Error Resume Next DoCmd.SelectObject acReport, report_name, True DoCmd.RunCommand acCmdPrint End Sub

  • ACCESSフォームフィルタで抽出したデータのみをレポートで表示する方法

    フォームフィルターでデータを抽出した後,抽出されたデータのみをレポート上に表示させるコマンドボタンをフォーム上に作っています。 下記のコードを作成しましたが,これだと抽出前の全部のデータが表示されてしまいます。 どうしたら良いでしょうか。 Private Sub ラベルプレビュー_Click() Dim stDocName As String DoCmd.Echo False, stDocName = "rpt宛名ラベル" DoCmd.OpenReport stDocName, acViewDesign DoCmd.SelectObject acReport, stDocName, False ' Reports(stDocName).RecordSource = Me.RecordSource DoCmd.OpenReport stDocName, acViewPreview End Sub

  • Accessであいまい検索するフォームをつくってみたんですが?

    Accessの初心者です。 本などをみながらあいまい検索ができるようなフォームをつくってみましたがフォームを開いた時、全レコードが表示されてしまいます。 クエリーの抽出条件はLike "*" & Forms!フォーム1!テキスト0 & "*"にしてテキストボックスプロパティの更新後処理でDoCmd.Requeryとしました。(意味がよくわからないんですけど) フォームを開いた時やテキストボックスになにも入力されていない時、全レコードが表示されないようにするにはどうすればいいのでしょうか? よろしくお願いします。

  • access 検索について教えてください。

    フォームにテキストボックス(テキスト0)を配置し、県名を入力するとこのフォーム(検索フォーム)にレコード内容が表示されるようにしました。クエリの県名の抽出条件にform![検索フォーム]![テキスト0]とし、検索フォームの更新後処理に Private Sub テキスト0_AfterUpdate() DoCmd.Requery End Sub と記載し利用しています。 ここで質問ですが、抽出条件に[me].[テキスト0]と記載し、上記内容のコードを記載しましたが、検索フォームが表示できません。 どこがいけないのでしょうか? お願いします。

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

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

  • ACCESSのレポートについて

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

専門家に質問してみよう