• ベストアンサー

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

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

  • ベストアンサー
  • bonaron
  • ベストアンサー率64% (482/745)
回答No.1

Private Sub ラベルプレビュー_Click()   Dim stDocName As String   stDocName = "rpt宛名ラベル"   If Me.FilterOn Then     DoCmd.OpenReport stDocName, acViewPreview,,Me.Filter   Else     DoCmd.OpenReport stDocName, acViewPreview   End If End Sub で、いかがでしょうか?

0304arabia
質問者

お礼

丁寧なご回答をありがとうございました。このとおりの記述をしたところ,できました!私のやり方では,よけいな記述をだらだらとしていたので,できなかったのでしょうか?また,質問の際には,よろしくお願いいたします。

その他の回答 (2)

noname#140971
noname#140971
回答No.3

補足: レポートで再フィルタするよりもネットワークトラフィックは混雑しないかと思います。 は、No1さんのやり方のことじゃないです。 No2とNo1は、実質的には同じだと思います。

noname#140971
noname#140971
回答No.2

テーブル<Customer> cuntomer_num__company_________kname_______zipcode__address1__address2__building__phone ______________101__スポーツランド__鈴木 一郎__150-_____東京都_____渋谷区____Aビル___(03)400-333 ______________102__スポーツランド__岡島 一郎__150-____東京都_____渋谷区____Bビル__(03)400-444 ______________103__スポーツランド__田中 一郎__150-_____東京都_____渋谷区____Cビル___(03)400-555 フォーム<Customer> Private Sub コマンド_フィルタの実行_Click()   Me.FilterOn = False   Me.Filter = "kname Like '鈴木*'"   Me.FilterOn = True End Sub Private Sub コマンド_レポートのプレビュー_Click() On Error Resume Next   Dim strSQL As String   strSQL = "SELECT * FROM CUSTOMER"   If Me.FilterOn Then     strSQL = strSQL & " WHERE " & Me.Filter   End If   DoCmd.OpenReport "Customer", acPreview, , , , strSQL End Sub レポート<Customer> Private Sub Report_Open(Cancel As Integer)   Me.RecordSource = Me.OpenArgs End Sub ここでは、レポートのレコードソース情報をフォームのOpenArgs を利用して渡しています。 OpenArgs は、フォームフィルターを反映したSQL文。 これで、レポートにはフォームフィルタが反映されます。 レポートで再フィルタするよりもネットワークトラフィックは混雑しないかと思います。

0304arabia
質問者

お礼

回答ありがとうございます。私には,難しくて意味が良く分からないところがありますが,これからもよろしくお願いいたします。

関連するQ&A