- ベストアンサー
ACCESS でフォームフィルターをレポートに引き継ぐ方法
こんにちは。 いつもありがとうございます。 現在、ACCESSで名簿管理ソフトを作っています。 フォームで条件を指定し、該当する人を抽出できるようになっているのですが、その条件をそのままレポートのソースに使用するにはどうれすばいいでしょうか? DoCmd.OpenReport "rpt_名簿", acViewPreview,, Me.Filter としているのですが、実行時エラー 438が出てしまいます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
発想を変えましょう レポートの開くときイベントでフォームのフィルタを引き継げばいいのです Private Sub Report_Open(Cancel As Integer) Me.Filter = Forms![フォーム名].Filter Me.FilterOn = True End Sub
その他の回答 (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ですが・・・。 レコードソースは、どちらも[名簿]。
- kazuhisa01
- ベストアンサー率32% (158/487)
レポートのソースに使用する・・・ レポートでデータとして使用したいってことですか? そうであれば、レポート内でフォームのテキストボックスのデータを見るだけじゃまずいんですかね。 あとエラーですが、引数の場所が違うからじゃ? http://www.geocities.jp/cbc_vbnet/kisuhen/docmd.html#openreport Filterは3番目ですよ。
補足
回答ありがとうございます。 >レポート内でフォームのテキストボックスのデータを見るだけじゃまずいんですかね。 一つのテキストボックスに名前を打って、その条件に一致する人だけを出すなら簡単ですが、複合的な条件で検索するようになっているのでそれができないのです。 >あとエラーですが、引数の場所が違うからじゃ? 3番目でも4番目でも同じようにエラーになります。
お礼
この回答がヒントになって解決しました。 レコードソースになっているクエリに検索項目が無いのが原因でした。 今日半日苦労しましたが助かりました。 感謝。
補足
回答ありがとうございます。 Private Sub Report_Open(Cancel As Integer) Me.Filter = Forms![frm名簿]![frm名簿sub].Filter Me.FilterOn = True End Sub <オブジェクトは、このプロパティまたはメソッドをサポートしていません。> というエラーになってしまいます。