Filter プロパティ

Recordset のデータに適用するフィルタを示します。

設定値と戻り値

バリアント型 (Variant) の値を設定または取得します。次の値のうちの 1 つになります。

· 条件文字列 AND で連結された 1 つ以上の個々の節からなる文字列

· ブックマーク配列 Recordset オブジェクトのレコードを指す一意なブックマーク値の配列

· 次の FilterGroupEnum 値のうちの 1 つ

定数

説明

adFilterNone

0

現在のフィルタを削除し、すべてのレコードを元に戻して表示します。

adFilterPendingRecords

1

変更後まだサーバーに送られていないレコードだけを表示するようにします。バッチ更新モードにのみ適用されます。

adFilterAffectedRecords

2

最後の DeleteResyncUpdateBatch、または CancelBatch のいずれかの呼び出しの作用を受けたレコードだけを表示するようにします。

adFilterFetchedRecords

3

現在のキャッシュ内のレコード (データベースから最後に取り出した結果) を表示するようにします。

解説

Filter プロパティは、Recordset オブジェクトのデータを選択的に画面に表示するために使います。選択された Recordset はカレント カーソルになります。Filter プロパティに特定の値を設定すると、カレント レコードが新しい値を満たす先頭のレコードに移動します。このため、カレント カーソルはそれに基づいて値を返す AbsolutePositionAbsolutePageRecordCountPageCount などのほかのプロパティに作用します。

条件文字列は、FieldName-Operator-Value という形式からなる節で構成されます (例: "LastName = 'Smith'")。個々の節を AND で連結することにより複雑な節を作成することができます (例: "LastName = 'Smith' AND FirstName = 'John'")。条件文字列は次のガイドラインに従って指定します。

· FieldName には Recordset からの有効なフィールド名を指定します。フィールド名に空白文字が含まれている場合は、フィールド名を角かっこで囲む必要があります。

· Operator には <><=>=<>=LIKE のいずれか 1 つを指定します。

· Value にはフィールド値と比較する値を指定します (例: 'Smith'#8/24/95#12.345$50.00 など)。文字列は単一引用符で囲み、日付はシャープ記号 (#) で囲みます。数値の場合には、小数点、ドル記号、および科学表記が使えます。OperatorLIKE の場合、Value にワイルドカードを指定できます。指定できるのはアスタリスク記号 (*) およびパーセント記号 (%) だけであり、必ず文字列の最後に指定します。ValueNull を指定することはできません。

フィルタ定数を使えば、たとえばバッチ更新モードにおいて、最後の UpdateBatch メソッド呼び出しの間に作用を受けたレコードだけを表示することが可能になったためにレコードが競合を起こした場合などに、競合をより簡単に解決することができます。

元になっているデータと競合するために Filter プロパティの設定自体が失敗する場合もあります (たとえば別のユーザーが既にレコードを削除している場合など)。このような場合、プロバイダは Errors コレクションに警告を返しますが、プログラムの実行を中断することはありません。ランタイム エラーは、要求されたレコードすべてが競合を起こした場合にだけ起こります。競合を起こしたレコードを探すには Status プロパティを使います。

Filter プロパティに長さ 0 の文字列 ("") を設定することは、定数 adFilterNone を使うことと同じです。どちらの場合もカレント レコードは変わりません。

Filter プロパティで使う配列をブックマーク値から作成する方法の詳細については、Bookmark プロパティを参照してください。

対象

Recordset

関連項目

Clear