- ベストアンサー
フィルターについて
印刷プレビューをするとフィルターが勝手に解除 --- Access2007で、フォームの中にサブフォームをデータシートで表示し、フォームを読み込む際に、自動でフィルターがかかるようにVBAで設定しているのですが、印刷プレビューをするとフィルターが勝手に解除されてしまいます。 対処方法などありませんか
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No2です。 サブフォームのレコードソースがテーブルならば、 そのテーブルをもとにクエリを作成し、抽出条件に 条件を設定し、それをサブフォームのレコードソース にするか、あるいはサブフォームのレコードソースで クエリビルダを起動し、クエリと同じような条件設定 をして閉じ、OKという方法ならば、 フォームを印刷プレビューにしても レコードはフィルタがかけられた状態になります。
その他の回答 (2)
- piroin654
- ベストアンサー率75% (692/917)
サブフォームに単独でフィルタをかけると 印刷時にはフィルタはかかりません。 一番いいのはサブフォームのレコードソースで表形式の レポートをレポートの新規作成からつくり、 そのレポートの開くときのイベントで、 同じフィルタをかけるか、たとえば以下のように。 Private Sub Report_Open(Cancel As Integer) Me.Filter = "ID=1" Me.FilterOn = True End Sub あるいは、レコードソースのところをクリックして クエリビルダを起動し、抽出条件を設定して そのまま閉じて、OKとし、レポートを 開くのがいいのでは、と思います。 また、フォームにテキストボックスを置き、 そこに、任意の数値や文字を入れ、それをフィルタ 条件に設定して、レポートを開くことも できます。その場合は、たとえば、文字型のフィルタを書ける場合は、 Private Sub コマンド1_Click() DoCmd.OpenReport "レポート名", acViewPreview, , "名前='" & Me!テキストボックス名 & "'" End Sub あるいは、数値型のフィルタをかける場合は、 Private Sub コマンド1_Click() DoCmd.OpenReport "レポート名", acViewPreview, , "ID=" & Me!テキストボックス名 & "" End Sub 違いは、 >名前='" & Me!テキストボックス名 & "'" >"ID=" & Me!テキストボックス名 & "" のように、「'」で囲むか囲まないかの違いです。 フォームを印刷するよりはスマートです。
- heyin
- ベストアンサー率33% (2/6)
印刷フォームのソースがフィルターされていないんじゃないかなぁ ?
お礼
回答ありがとうごさいました
お礼
回答ありがとうごさいました