filter问题(50分)

P

PFans

Unregistered / Unconfirmed
GUEST, unregistred user!
我发现用
ADOQuery1.Filter:='...';
ADOQuery1.Filtered:=true;
之后,用ADOQuery1.RecordCount得到的是过滤后的记录总数.

而用ADOQuery1.OnFilterRecord事件过滤,
ADOQuery1.Filtered:=true;之后,
用ADOQuery1.RecordCount得到的还是以前表中记录数,而不是过滤后的.奇怪!!

请问怎样在ADOQuery1.OnFilterRecord 之后,得到过滤后的记录总数
 
只能用SQL语句查询或循环整个数据集统计出来,这点在李维的书上也有提到
 
不光是ADO,BDE也是这样的,如果数据不多,你可以遍历取记录数,如果多就用SQL吧
 
同意:svw0506
 
我想知道为什么用第一种方法可以统计过滤后的记录总数,
而用OnFilterRecord则不行!
 
ADOQuery1.Filter:='...';
ADOQuery1.Filtered:=true;
ADOQuery1.Last;
记录数:=ADOQuery1.RecNo;
 
to svw0506:
可能你没有看清我的问题!我想知道在OnFilterRecord之后,如何得到记录总数?
 
我用这种方法得到的就是你过滤之后的记录总数呀,
因为过滤之后的RecordCount是过滤之前的记录数,而你过滤之后,
第一条记录的RecNo是1,那么最后一条记录的RecNo自然就是你现在的记录总数了
 
其实我只想统计一个数字,所以没用SQL,用了filter。但是filter好像不能使用模糊查询,
所以用了OnFilterRecord事件,但是用RecordCount怎么求出来的不是过滤后的纪录值呢?
 
谢谢各位,问题已解决
 
顶部