vf中删除两条相同的数据,全部删除

vf中删除两条相同的数据,全部删除,第1张

简单的方法是浏览该表(BROWSE),看到第一个字段前面的白色小格子吗?左键点击以下,变黑了,就删除了,再点一下,变白了,恢复了。删除后,输入命令:

PACK,就彻底删除了(物理删除)。

这种事情我干过,只能编程解决,基本思路就是设置循环,从第一个

记录

中取得几项数据(如厂名、编号等),并赋值,再根据所赋的值向下查找,找到以后说明该记录重复,就可以删除或者做

标记

,直到文件

末尾

。然后用skip命令跳到第二个记录,再这样进行一遍,直到结束。

进行这样的工作前最好进行

备份

,防止出现

错误

。再就是设置个

字段

,比如命名为cfqk(重复情况,N型),用程序进行挑选时,就可以找到重复的记录时把cfqk标为1,用第二个记录进行查找时,就能根据该字段进行判断,如果cfqk<>1就根据第二个记录向下查找,如果是1说明它本身重复,再从第三个记录查起,依次类推,就能把所有重复的记录都找出来,再用一个命令把所有cfqk是1的都删除,问题也就解决了。

如果不能设置这样的程序就回话,把

字段名

和类型告诉我,我再帮你设计。应该不难解决的。

编程

思路,生成一个新的数据库,从旧的数据库中提取数据,如果记录在新数据库中存在,就不复制,如果不存在,就将记录复制到新数据库中!这样的话就没重复的数据了

假定原数据是保存在sj.dbf中,则程序如下:

use sj

copy to temp &&将原数据库内容复制到临时数据库中

zap &&清空原数据库

use temp

jlh=1

stro recc() to jls &&将原记录条数保存到变量中

do whil jlh<=jls &&依次判断在新表中是否存在重复记录

go jlh

stor code to lsbl &&将code字段的值保存在变量中

use sj

loca for code=lsbl

if found()

else

clos data

use temp

copy to lswj for recn()=jlh &&将没有找到的记录可在在临时文件中

use sj

appe from lswj &&从临时文件中追加记录

clos data

dele file lswj.dbf &&删除产生的临时文件

endi

jlh=jlh+1

use tmep

endd

clos data

dele file temp.dbf &&删除临时文件

再重新打开原数据库后,你会发现已经没重复的记录了


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9972454.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-03
下一篇2023-05-03

发表评论

登录后才能评论

评论列表(0条)

    保存