此頁沒有內容條目
內容

   

Recordset 中的數(shù)據(jù)指定篩選條件。

設置和返回值

設置或返回變體型值,該值包含以下某項內容:

?條件字符串 — 由一個或多個用 ANDOR 操作符連接的子句組成的字符串。

 

?書簽數(shù)組 — 指向 Recordset 對象中記錄的唯一書簽值數(shù)組。

 

?以下某個 FilterGroupEnum 值。

常數(shù)

說明

AdFilterNone

刪除當前篩選條件并恢復查看的所有記錄。

AdFilterPendingRecords

允許只查看已更改且尚未發(fā)送到服務器的記錄。只能應用于批更新模式。

AdFilterAffectedRecords

允許只查看上一次 Delete、Resync、UpdateBatchCancelBatch 調用所影響的記錄。

AdFilterFetchedRecords

允許查看當前緩沖區(qū)中的記錄,即上一次從數(shù)據(jù)庫中檢索記錄的調用結果。

AdFilterConflictingRecords

允許查看在上一次批更新中失敗的記錄。

 

說明

使用 Filter 屬性可選擇性地屏蔽 Recordset 對象中的記錄,已篩選的 Recordset 將成為當前游標。這將影響基于當前游標返回值的其他屬性,如 AbsolutePosition、AbsolutePage、RecordCountPageCount,因為將 Filter 屬性設置為特定值可將當前記錄移動到滿足新值的第一個記錄。

條件字符串由 FieldName-Operator-Value 格式(如“LastName = 'Smith'”)的子句組成??梢詣?chuàng)建用單獨的 AND(如“LastName = 'Smith' AND FirstName = 'John'”)或 OR(如“LastName = 'Smith' OR LastName = 'Jones'”)子句連接而成的混合子句。對于條件字符串請遵循以下規(guī)則:

?FieldName 必須為 Recordset 中的有效字段名。如果字段名包含空格,必須用方括號將字段名括起來。

 

?Operator 必須使用的操作符為:<、>、<=、>=、<>、= 或 LIKE

 

?Value 是用于與字段值(如 'Smith'、#8/24/95#、12.345 或 $50.00)進行比較的值。字符串使用單引號而日期使用井號 (#),對于數(shù)字,可以使用小數(shù)點、貨幣符號和科學記數(shù)法。如果 Operator LIKE,Value 則可使用通配符。只允許使用星號 (*) 和百分號 (%) 通配符,而且必須為字符串的尾字符。Value 不可為 Null。

 

?ANDOR 在級別上沒有先后之分。可使用括號將子句分組。但不能象以下示例那樣先將由 OR 聯(lián)接的子句分組,然后將該組用 and 聯(lián)接到其他子句。

(LastName = 'Smith' OR LastName = 'Jones') AND FirstName = 'John'

?與之相反,可以構造如下形式的篩選:

(LastName = 'Smith' AND FirstName = 'John') OR (LastName = 'Jones' AND FirstName = 'John')

?LIKE 子句中,可在樣式的開頭和結尾使用通配符(如 LastName Like '*mit*'),或者只在結尾使用通配符(如,LastName Like 'Smit*') 。

通過僅允許查看(例如)上次調用 UpdateBatch 方法時受到影響的記錄,篩選常量使得在批更新模式時所發(fā)生的單個記錄沖突更易于解決。

設置 Filter 屬性本身可能會因與基本數(shù)據(jù)發(fā)生沖突(如某記錄已被其他用戶刪除)而失敗。在此情況下,提供者將返回對 Errors 集合的警告但不停止程序執(zhí)行。只有在所有需要的記錄上發(fā)生沖突時才產(chǎn)生運行時錯誤。使用 Status 屬性可定位發(fā)生沖突的記錄。

Filter 屬性設置為零長度字符串 ("") 與使用 adFilterNone 常量具有同樣效果。

一旦設置 Filter 屬性,當前記錄位置將移動到 Recordset 中已篩選記錄子集中的第一個記錄。類似地,清除 Filter 屬性后,當前記錄位置將移動到 Recordset 的第一個記錄。

有關可與 Filter 屬性一起使用創(chuàng)建數(shù)組的書簽值的解釋,請參考 Bookmark 屬性。