こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

こんにちは。
いつもありがとうございます。

現在、ACCESSで名簿管理ソフトを作っています。
フォームで条件を指定し、該当する人を抽出できるようになっているのですが、その条件をそのままレポートのソースに使用するにはどうれすばいいでしょうか?

DoCmd.OpenReport "rpt_名簿", acViewPreview,, Me.Filter
としているのですが、実行時エラー 438が出てしまいます。

投稿日時 - 2007-07-20 16:51:23

QNo.3184594

困ってます

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

発想を変えましょう
レポートの開くときイベントでフォームのフィルタを引き継げばいいのです

Private Sub Report_Open(Cancel As Integer)
Me.Filter = Forms![フォーム名].Filter
Me.FilterOn = True
End Sub

投稿日時 - 2007-07-20 18:57:53

補足

回答ありがとうございます。

Private Sub Report_Open(Cancel As Integer)
Me.Filter = Forms![frm名簿]![frm名簿sub].Filter
Me.FilterOn = True
End Sub

<オブジェクトは、このプロパティまたはメソッドをサポートしていません。>

というエラーになってしまいます。

投稿日時 - 2007-07-20 19:45:13

お礼

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

投稿日時 - 2007-07-20 20:04:11

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

<名簿>
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ですが・・・。

レコードソースは、どちらも[名簿]。

投稿日時 - 2007-07-20 17:20:26

ANo.1

レポートのソースに使用する・・・

レポートでデータとして使用したいってことですか?
そうであれば、レポート内でフォームのテキストボックスのデータを見るだけじゃまずいんですかね。

あとエラーですが、引数の場所が違うからじゃ?
http://www.geocities.jp/cbc_vbnet/kisuhen/docmd.html#openreport
Filterは3番目ですよ。

投稿日時 - 2007-07-20 16:57:53

補足

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

>あとエラーですが、引数の場所が違うからじゃ?
3番目でも4番目でも同じようにエラーになります。

投稿日時 - 2007-07-20 17:07:18

あなたにオススメの質問