为 Recordset 中的数据指示筛选条件。
设置和返回值
设置或返回变体型值,该值包含以下某项内容:
或 OR 操作符连接的子句组成的字符串。常量 | 说明 |
AdFilterNone | 删除当前筛选条件并恢复查看的所有记录。 |
AdFilterPendingRecords | 允许只查看已更改且尚未发送到服务器的记录。只能应用于批更新模式。 |
AdFilterAffectedRecords | 允许只查看上一次 Delete、Resync、UpdateBatch 或 CancelBatch 调用所影响的记录。 |
AdFilterFetchedRecords | 允许查看当前缓冲区中的记录,即上一次调用从数据库中恢复记录的结果。 |
AdFilterConflictingRecords | 允许查看在上一次批更新中失败的记录。 |
说明
使用 Filter 属性可选择性地屏蔽 Recordset 对象中的记录,已筛选的 Recordset 将成为当前游标。这将影响基于当前游标返回值的其他属性,如 AbsolutePosition、AbsolutePage、RecordCount 和 PageCount,因为将 Filter 属性设置为特定值可将当前记录移动到满足新值的第一个记录。
条件字符串由 FieldName-Operator-Value 格式(如“LastName = 'Smith'
”)的子句组成。可以创建用单独的 AND(如“LastName = 'Smith' AND FirstName = 'John'
”)或 OR(如“LastName = 'Smith' OR LastName = 'Jones'
”)子句连接而成的混合子句。对于条件字符串请遵循以下规则:
'Smith'
、#8/24/95#
、12.345
或 $50.00
)进行比较的值。字符串使用单引号而日期使用井号 (#
),对于数字,可以使用小数点、货币符号和科学记数法。如果 Operator 为 LIKE,Value 则可使用通配符。只允许使用星号 (*) 和百分号 (%) 通配符,而且必须为字符串的尾字符。Value 不可为 Null。(LastName = 'Smith' OR LastName = 'Jones') AND FirstName = 'John'
(LastName = 'Smith' AND FirstName = 'John') OR (LastName = 'Jones' AND FirstName = 'John')
LastName Like '*mit*'
),或者只在结尾使用通配符(如,LastName Like 'Smit*'
)。例如,通过允许您只查看上一次 UpdateBatch 方法调用中影响到的记录,筛选常量使其更易于解决处于批更新模式中单个记录冲突。
设置 Filter 属性本身可能会因与现行数据发生冲突(如某记录已被其他用户删除)而失败。在此情况下,提供者将返回对 Errors 集合的警告但不停止程序执行。只有在所有需要的记录上发生冲突时才产生运行时错误。使用 Status 属性可定位发生冲突的记录。
将 Filter 属性设置为零长度字符串 ("") 与使用 adFilterNone 常量具有同样效果。
一旦设置 Filter 属性,当前记录位置将移动到 Recordset 中已筛选记录子集中的第一个记录。类似地,清除 Filter 属性后,当前记录位置将移动到 Recordset 的第一个记录。
有关可与 Filter 属性一起使用创建数组的书签值的解释,请参考 Bookmark 属性。