以文本方式查看主题 - 搭建论坛 (http://bbs.diylsoft.com:8118/starforum/index.asp) -- 用户咨询 (http://bbs.diylsoft.com:8118/starforum/list.asp?boardid=4) ---- [求助]请admin帮助看看 (http://bbs.diylsoft.com:8118/starforum/dispbbs.asp?boardid=4&id=2533) |
||||
-- 作者:YANCUNLIN -- 发布时间:2004-10-13 0:13:18 -- [求助]请admin帮助看看 关于数据表过滤后再定位查询的问题,请看我的例子
|
||||
-- 作者:YANCUNLIN -- 发布时间:2004-10-24 22:21:24 -- admin为什么不回答我的问题呀,怎么也该给个答复吧 |
||||
-- 作者:水手 -- 发布时间:2004-10-24 23:46:44 -- “在没有过滤之前,点“L”键,即对“字母”字段定位查询,一切正常,指针停在22号记录上。 如果对“家电大类”“家电小类”赋值“影碟机”“VCD”,然后过滤,再次点“L”键,则不能找到“字母”字段中是“L”的记录了。 好象定位查询只对原始表操作,不能只在过滤后的表中操作。 这个问题该怎么解决?” 以上描述中,之所以找不到“L”的记录了,是因为在你过滤后的结果中根本就不存在有“L”的记录。如果要实现每次查询或者过滤都是有效的,可以把“取消过滤”的命令放到其他命令的开始位置,既每次执行过滤命令前首先设置过滤的活动属性为“假”,设置好过滤命令后再把过滤的活动属性为“真”即可。这样每次执行的操作都是一个新的操作,而不是在已经过滤的基础上再查找。不知道以上对你问题的理解是否对? |
||||
-- 作者:FSJM -- 发布时间:2004-10-25 8:57:57 -- 水手的描述是对的 [此贴子已经被作者于2004-10-25 9:02:00编辑过]
|
||||
-- 作者:admin -- 发布时间:2004-10-25 11:06:48 -- 定位查询只针对原数据表进行查询,对于过滤后的数据集不进行定位查询。简单的说就是,当你对一个数据表进行过滤后,再进行定位查询。查询的范围并不是过滤后的数据集,仍然是在原数据表范围内的定位查询。以你的例子说明,当过滤后,再按“L”键,系统仍然定位在为"22"号的记录上了,而你过滤后的结果没有“22”号记录。因此出现错误。 解决你办法,也很简单,即在过滤后,针对你的过滤条件重新定义“定位查询参数”。以你的例子为例。当对“影碟机、VCD”两项进行过滤后,重新定义定位查询参数,增加“家电小类(VCD)”项,变为“{字母,家电小类}”两项。 请参考新增个人版学习实例《过滤后定位查询》。 [此贴子已经被作者于2004-10-25 13:01:42编辑过]
|
||||
-- 作者:YANCUNLIN -- 发布时间:2004-10-26 0:01:10 -- 解决的办法我早已经知道,我的意思是能不能对过滤后的数据表,不用重新赋值,在新表中定位查询 |
||||
-- 作者:引力波 -- 发布时间:2004-10-26 8:27:25 -- 建议你把过滤后的数据集保存为一个新表,然后再对新表进行进行所有的查询就没有问题了。保存为新表的办法:用记数循环构件(当前记录数为循环次数,写完一条后读取下一条)把过滤的结果写入一个新的(可以预先建立一个备用表)数据表。 |
||||
-- 作者:admin -- 发布时间:2004-10-26 9:11:20 -- 建议:用SQL命令实现,整表复制,速度更快。 |