Recordset のデータに適用するフィルタを示します。
バリアント型 (Variant) の値を設定または取得します。次の値のうちの 1 つになります。
· 条件文字列 セ AND で連結された 1 つ以上の個々の節からなる文字列
· ブックマーク配列 セ Recordset オブジェクトのレコードを指す一意なブックマーク値の配列
· 次の FilterGroupEnum 値のうちの 1 つ
定数 |
値 |
説明 |
adFilterNone |
0 |
現在のフィルタを削除し、すべてのレコードを元に戻して表示します。 |
adFilterPendingRecords |
1 |
変更後まだサーバーに送られていないレコードだけを表示するようにします。バッチ更新モードにのみ適用されます。 |
adFilterAffectedRecords |
2 |
最後の Delete、Resync、UpdateBatch、または CancelBatch のいずれかの呼び出しの作用を受けたレコードだけを表示するようにします。 |
adFilterFetchedRecords |
3 |
現在のキャッシュ内のレコード (データベースから最後に取り出した結果) を表示するようにします。 |
Filter プロパティは、Recordset オブジェクトのデータを選択的に画面に表示するために使います。選択された Recordset はカレント カーソルになります。Filter プロパティに特定の値を設定すると、カレント レコードが新しい値を満たす先頭のレコードに移動します。このため、カレント カーソルはそれに基づいて値を返す AbsolutePosition、AbsolutePage、RecordCount、PageCount などのほかのプロパティに作用します。
条件文字列は、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 など)。文字列は単一引用符で囲み、日付はシャープ記号 (#) で囲みます。数値の場合には、小数点、ドル記号、および科学表記が使えます。Operator が LIKE の場合、Value にワイルドカードを指定できます。指定できるのはアスタリスク記号 (*) およびパーセント記号 (%) だけであり、必ず文字列の最後に指定します。Value に Null を指定することはできません。
フィルタ定数を使えば、たとえばバッチ更新モードにおいて、最後の UpdateBatch メソッド呼び出しの間に作用を受けたレコードだけを表示することが可能になったためにレコードが競合を起こした場合などに、競合をより簡単に解決することができます。
元になっているデータと競合するために Filter プロパティの設定自体が失敗する場合もあります (たとえば別のユーザーが既にレコードを削除している場合など)。このような場合、プロバイダは Errors コレクションに警告を返しますが、プログラムの実行を中断することはありません。ランタイム エラーは、要求されたレコードすべてが競合を起こした場合にだけ起こります。競合を起こしたレコードを探すには Status プロパティを使います。
Filter プロパティに長さ 0 の文字列 ("") を設定することは、定数 adFilterNone を使うことと同じです。どちらの場合もカレント レコードは変わりません。
Filter プロパティで使う配列をブックマーク値から作成する方法の詳細については、Bookmark プロパティを参照してください。