VFP表中的数据过滤后,移动鼠标后就提示发生了试图把记录指针超过文件尾标的情况,然后出错退出 5
假如一个表有10条记录,前5条的姓名为张三,后5条为李四,我在表单姓名的losfocus中写了SETFILTERTO姓名=‘张三'GOtopthisform.grid1....
假如一个表有10条记录,前5条的姓名为张三,后5条为李四,我在表单姓名的losfocus中写了
SET FILTER TO 姓名=‘张三'
GO top
thisform.grid1.Refresh
运行时
我把记录移到表格中的第6条,就提示发生了试图把记录指针超过文件尾标的情况,就退出了,敲回车就又没有问题,有劳专家了 展开
SET FILTER TO 姓名=‘张三'
GO top
thisform.grid1.Refresh
运行时
我把记录移到表格中的第6条,就提示发生了试图把记录指针超过文件尾标的情况,就退出了,敲回车就又没有问题,有劳专家了 展开
展开全部
当然出错了。
你执行了这句代码 :SET FILTER TO 姓名=‘张三'
就是表里只显示 姓名为张三的记录,是5条记录,那么你移动指针就只能在这5条之内移动。
现在你移到6, 当然超出范围了。
你执行了这句代码 :SET FILTER TO 姓名=‘张三'
就是表里只显示 姓名为张三的记录,是5条记录,那么你移动指针就只能在这5条之内移动。
现在你移到6, 当然超出范围了。
追问
可是在软件里,在过滤之前谁能知道有多少条记录啊,假如有200条,填写了一些数据后自动识别该人员的相关信息,按该姓名自动过滤,在刷新前不知道有多少条啊,所以有时候就顺便移到下一个相同姓名处了,结果该记录经过过滤后已经跑到第2条记录去了,而且后面没有更多的记录了,所以移开鼠标时,就出错了。想问的是如何不出错,有没有可能杜绝这钟出错信息,自动识别.
追答
你是不是这个意思:表里存放的各个人员的信息, 而姓名可以重复
当指定某人时, 表里过滤只显示他的信息, 这时你可以用鼠标查看记录
比如张三有6条记录, 你点到第六条,
然后查看李四,他有3条,就会提示这个错误。
这种情况可以这样避免:
在每次过滤前将指针指向表头(指向第一条记录也不能避免,因为可能某人一条记录也没有),过滤后再指向第一条记录
go top
skip -1
SET FILTER TO 姓名=‘张三'
go top
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询