フィルター機能

Accessのフィルター機能は不可解なことが多い。なぜエラーが発生するのか分からないところで発生したりする。特に致命的でないのでエラーを無視する方法で回避している。

目次

即時フィルター

キー入力の度に候補を絞り込むインタフェースです。
長所:即時性
短所:レスポンス

キークリック時

Escキーが押下された場合は入力域を消去します。Tabは無視?

入力域変更時

フィルタ文字列を組み立てて、フィルターを実行します。

フィルター機能の改善

キー入力の度に候補を絞り込むインタフェースはレコードが少ないうちは良いのですが、件すぐあ多くなるとレスポンスが悪くなります。
そこで、キー入力の間隔を監視して、入力が止まってからフィルターをかけるようなインタフェースを考えます。

キークリック時

検索を開始したことを示すフラグをONにします。

入力域変更時

なにもしません。

タイマー時

前回保存した検索文字列と変わっていたら、検索文字列を退避して脱出
検索開始F=Falseなら脱出、そうでないならFalseに設定して継続
フィルタ文字列組立
フィルタ設定
(1)まだ1回も検索していない場合で、何もキーを押していない状態では前回=今回となるが検索はスキップする必要がある。
(2)検索直後で、何もキーを押していない状態では前回=今回となるが検索はスキップする必要がある。
(1)(2)の状態をトラップするため、キークリック時に検索開始F=Trueに設定し、絞込みをする際にFalseに戻す。

よかったらシェアしてね!

この記事を書いた人

コメント

コメントする

目次
閉じる