ExcelWork.info

レコードを指定した条件で抽出する(ADO)Filter プロパティ

データベースのレコードを指定した条件で抽出する

Filter プロパティ

【書式】

object.Filter = Condition


引数・戻り値

  • object  ・・・  対象となる Recordset オブジェクトを指定します。
  • Condition  ・・・  抽出する条件式を文字列型(String)で指定します。条件式は、”(二重引用符)で囲みます。
    条件式は、FieldName Operator Value という形式からなる節で構成されます。
    複数の条件式を AndOr を使って連結することができます。
    • FieldName ・・・Recordset から有効な列名(フィールド名)を指定します。フィールド名に空白文字が含まれる場合は [](角括弧)で囲む必要があります。
    • Operator ・・・比較演算子( >、
    • Value   ・・・FieldName と比較する値を指定します。値には、文字列、数値、日付を使用できます。文字列は、’(単一引用符)で囲みます(user = ‘Rin’)。日付の値は、#(シャープ記号)で囲みます(sdate > #7/22/17#)。数値の場合は、小数点、指数表記を使用できます。また、like 演算子には、ワイルドカードを使用することができます。ワイルドカードには、アスタリスク(*)およびパーセント記号(%)のみで、必ず文字列の末尾に使用します。例えば、「keyword like ‘k*’」、「keyword like ‘*ba*’」のように文字列の末尾または文字列の先頭と末尾に * や % を使用して検索します。ただし「keyword like ‘*ea’」、「keyword like ‘a*c’」のように文字列の先頭や文字列中に * や % を使用することはできません。この場合はエラーが発生します。また、ValueNull を指定することはできません。

Filter を解除するには、Filter プロパティに、定数 adFilterNone(0)を設定します。これは、Filter プロパティに、長さ 0 の文字列(””)を設定した場合と同じ結果が得られます。
rs.Filter = adFilterNone
rs.Filter = “”
※ rs は、Recordset オブジェクト

Filter プロパティを設定すると Recordset 内のレコードで、フィルタ処理済みのサブセット内の最初のレコードにカレントレコードの位置が移動します。また、Filter プロパティを消去すると、カレントレコードの位置は Recordset の最初のレコードに移動します。



Filter プロパティ 使用例

サンプルVBAソース


実行結果