• ベストアンサー

ACCESS でフォームフィルターをレポートに引き継ぐ方法

こんにちは。 いつもありがとうございます。 現在、ACCESSで名簿管理ソフトを作っています。 フォームで条件を指定し、該当する人を抽出できるようになっているのですが、その条件をそのままレポートのソースに使用するにはどうれすばいいでしょうか? DoCmd.OpenReport "rpt_名簿", acViewPreview,, Me.Filter としているのですが、実行時エラー 438が出てしまいます。

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

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

発想を変えましょう レポートの開くときイベントでフォームのフィルタを引き継げばいいのです Private Sub Report_Open(Cancel As Integer) Me.Filter = Forms![フォーム名].Filter Me.FilterOn = True End Sub

kunisada
質問者

お礼

この回答がヒントになって解決しました。 レコードソースになっているクエリに検索項目が無いのが原因でした。 今日半日苦労しましたが助かりました。 感謝。

kunisada
質問者

補足

回答ありがとうございます。 Private Sub Report_Open(Cancel As Integer) Me.Filter = Forms![frm名簿]![frm名簿sub].Filter Me.FilterOn = True End Sub <オブジェクトは、このプロパティまたはメソッドをサポートしていません。> というエラーになってしまいます。

その他の回答 (2)

noname#140971
noname#140971
回答No.2

<名簿> ID__氏名 1___鈴木 一郎 2___山田 太郎 3___中村 四郎 Private Sub コマンド7_Click() On Error Resume Next   DoCmd.OpenReport "名簿", acPreview, , Me.Filter End Sub Private Sub コマンド8_Click()   Me.FilterOn = False   Me.Filter = "氏名 LIKE '鈴木*'"   Me.FilterOn = True End Sub これでOKですが・・・。 レコードソースは、どちらも[名簿]。

回答No.1

レポートのソースに使用する・・・ レポートでデータとして使用したいってことですか? そうであれば、レポート内でフォームのテキストボックスのデータを見るだけじゃまずいんですかね。 あとエラーですが、引数の場所が違うからじゃ? http://www.geocities.jp/cbc_vbnet/kisuhen/docmd.html#openreport Filterは3番目ですよ。

kunisada
質問者

補足

回答ありがとうございます。 >レポート内でフォームのテキストボックスのデータを見るだけじゃまずいんですかね。 一つのテキストボックスに名前を打って、その条件に一致する人だけを出すなら簡単ですが、複合的な条件で検索するようになっているのでそれができないのです。 >あとエラーですが、引数の場所が違うからじゃ? 3番目でも4番目でも同じようにエラーになります。

関連するQ&A