- ベストアンサー
帳票フォームの全件のレポート出力方法
- Access Version 2007のOS:XPで、帳票フォームに表示されている複数抽出のレコードを全件レポート出力する方法を教えてください。
- 質問者は、帳票フォームに抽出されたレコードが表示されているが、その複数抽出のレコードすべてをレポート出力したいが方法がわからないとのことです。質問者の抽出条件コードも提供されています。
- 具体的な抽出条件として、年度と営業担当のテキストボックスが存在し、それぞれの条件に合致するレコードのみを抽出しています。質問者は、レコードソースを書き換えて再クエリして全件のレポートを出力したいと考えています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
フォームヘッダーかフッターにコマンドボタン(btnPreview)を配置して、 コマンドボタンのクリック時のイベントプロシージャに Private Sub btnPreview_Click() Dim strFilter As String strFilter = Me.RecordSource strFilter = Mid(strFilter, InStr(strFilter, " WHERE ") + 7) DoCmd.OpenReport "レポート名", acViewPreview, , stFilter End Sub でどうですか。 あと、抽出ボタンで RecordSource を書きかえてますが、 Filterプロパティを設定する方がシンプルになります。 コード例 Private Sub btnSearch_Click() Dim strWhere As String Dim strAndOr As String strWhere = vbNullString If Me.optAndOr.Value = cAnd Then strAndOr = " AND " Else strAndOr = " OR " End If If Me.txtYear.Value <> vbNullString Then strWhere = strWhere & strAndOr & " 年度 LIKE '*" & Me.txtYear.Value & "*'" End If If Me.txtName.Value <> vbNullString Then strWhere = strWhere & strAndOr & " 営業担当 LIKE '*" & Me.txtName.Value & "*'" End If 'WHERE句編集 strWhere = Replace(strWhere, strAndOr, "", , 1) 'レコードソース書き換えと再クエリ Me.Filter = strWhere Me.FilterOn = True End Sub Private Sub btnPreview_Click() DoCmd.OpenReport "レポート名", acViewPreview, , Me.Filter End Sub
その他の回答 (1)
- piroin654
- ベストアンサー率75% (692/917)
レポートには必要なコントロールを設定しておいて、 'レコードソース書き換えと再クエリ Me.RecordSource = cBaseQuery & " " & strWhere の右の cBaseQuery & " " & strWhere でクエリ を設定し、これをレポートのフォーマット時に レポートのレコードソースにすればいいのでは と思いますが。