Microsoft Access Club >SampleFile Q & A >インデックス >このページ >次頁 < 前項  サイト内検索


Q&A-018 簡易なFilterの実例



タイトル : レポートのフィルタが消えてしまう
記事No : 10327
投稿日 : 2003/07/28(Mon) 11:41
投稿者 : なか <nakazawa@cs1.y-min.or.jp>

OS:2000
Access Version:2000
こんにちは。レポートで苦労しています。
レポートのプロパティでフィルタの項目に[退院]=offとすると入院患者の一覧が表示できるようになります。ところが何日かするとフィルタが消えてなくなっています。また手動で入力するとしばらくは、[退院]=offのままなのですが、数日後には手動で入力せざるを得なくなっています。何が起きているのでしょうか。

更に、フォームを開いたときに「最大」のサイズで表示したい場合はどうしたらよいのでしょうか。


> ところが何日かするとフィルタが消えてなくなっています。

レポートプロパティの「フィルタ」欄に記載したはずの [退院]=Off が消えてしまい、フィルタがかからなくなってしまった、ということですね。

 

 

消えた原因は、なかなか推測できませんが、ある操作でこの [退院]=Off を 空白 で上書きしてしまったのではないでしょうか?

jまあ、目的はフィルタを実行することですから、VBAで対処してみましょう。

 

テーブルデータは下記のようなものを想定します。

 

ID 名称
1 松島
2 笹川
3 里謡間
4 立花
6 小売
7 寝屋
8 バラ
9 りんない
10 佐合
11 久島
12 松島
13 海東
14 木島
15 軍艦
16 蹉跌
17 バラ
18 小売
19 空豆
20 里謡間

 

レポートを開く イベントに下記のようにプロシージャを記述して下さい。#サンプルファイルには、名称フィールドを持つテーブルをレコードソースを配置しています。

 

Private Sub Report_Open(Cancel As Integer)

    'テーブルフィールド 名称 を指定します。
    'データ 松島 でフィルターをかけます。
    Me.Filter = "[名称]= '松島'"
    
    'フィルターを実行します。
    Me.FilterOn = True

End Sub

#[退院]=Off ならば、Me.Filter = "[退院]= Off" でOKです。

 

 

このように、VBAを用いるなら、上記図のようなプロパティ操作は必要ありません。

 

 

> 更に、フォームを開いたときに「最大」のサイズで表示したい場合はどうしたらよいのでしょうか。

これを実現するためには、下記のようにプロシージャを変更します。

 

Private Sub Report_Open(Cancel As Integer)

    'テーブルフィールド 名称 を指定します。
    'データ 松島 でフィルターをかけます。
    Me.Filter = "[名称]= '松島'"
    
    'フィルターを実行します。
    Me.FilterOn = True
    
    'レポートを最大で開きます。
    DoCmd.Maximize

End Sub

 

 

2003/07/29


Q&A-018 簡易なFilterの実例


 

-Microsoft Access Club-