| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2609 人关注过本帖
标题:怎么判断一个表中是否有这个记录(特殊)
只看楼主 加入收藏
玲子
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-8-24
收藏
 问题点数:0 回复次数:16 
怎么判断一个表中是否有这个记录(特殊)
首先我用了tiger大哥的代码,这样可以保留最后一个记录的值,在这基础上做修改就可以了,便于录入
GO BOTTOM
SCATTER TO AA &&最后一条记录的数据保存在数组AA中
APPEN BLANK &&追加一条空白记录
GATHER FROM AA &&从数组AA中追加数据到当前记录处(空白记录)

但是要在这个基础上在搜索以前是不是有这个记录的话,就很难操作了,用locate的话
他把你要添加的这个也算进去了,所以他总是判断本记录是重复的,我想知道怎么能让他搜索到倒数第二个就好了,不
搜索倒数第一个了,因为这个是要添加的 谢谢了
搜索更多相关主题的帖子: 判断 记录 
2006-09-06 19:06
eryiqingfan
Rank: 1
等 级:新手上路
威 望:2
帖 子:379
专家分:0
注 册:2006-8-15
收藏
得分:0 

我也是这样的问题,可是已经解决了,用了循环

若是先追加,返回当前记录号a,然后将要检索的记录值付给变量MX,
GO TOP
I=1
DO WHILE I<>a
IF 字段=XM
MESSAGEBOX("重复!",48,"管理系统")*****要是需要删除,改这里就好了
THISFORM.TXT.SETFOCUS
EXIT
ENDIF
SKIP
IF EOF()
EXIT
ENDIF
ENDDO

[此贴子已经被作者于2006-9-9 1:32:28编辑过]


学习ING... 安静的阳台,抬头那一小片天空,自由自在唱属于自己的歌. 鬼鬼£小鬼 ++UU
2006-09-06 20:10
fown
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:58
帖 子:1229
专家分:171
注 册:2005-5-26
收藏
得分:0 
你把表中的记录存入数组再存进表里面?还要判断是否有这条记录?肯定有啊,要不然你怎么能存入数组?

有人说VFP不行了,我想说,你连VFP十分之一的功能都不会用,你怎么知道VFP不行?本人拒绝回答学生的问题我回答问题一般情况下只提供思路不提供代码,请理解
2006-09-06 20:43
玲子
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-8-24
收藏
得分:0 

录入时一般都是几百条一起录入,其中有很多字段内容差不多,为了方便,就用了这个,先把记录存到数组里,再存回来
这样就只要稍微修改一下上个记录就又是一条新记录了,但是这样用locate的话,总是有重复的啊,因为已经把这个算进去了,所以我只要扫描到倒数第二个就可以了,最后一个就是修改的这个不算,这个怎么编程?

[此贴子已经被作者于2006-9-6 21:54:53编辑过]


2006-09-06 21:41
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
要是真的没有太多的记录数,追加记录之前用locate命令确认是否有重复记录是个好办法. 不过, 根据fown的意见, 必须考虑程序执行的效率, 可以
(1)建立索引,用seek;
(2)用select-sql;
(3)用calculate cnt()等
都能进行判断. 但要注意的是, 必须先判断后追加

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2006-09-06 22:15
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
你难道不可以在从数组保存到记录之前检查是否为重复记录吗?有重复记录就不保存,没有重复记录才新增空记录保存。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2006-09-07 08:16
fyyylyl
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:313
专家分:820
注 册:2006-5-22
收藏
得分:0 
在楼主代码基础上修改,如以"编号"字段作为判断是否重复的依据:
SCATTER Memv
If Seek(M.编号) &&前提:以"编号"建立索引且为当前索引,否则使用Locate
=MessageBox("编号重复!",0+16+0,"提示:")
Else
APPEN BLANK
GATHER Memv
Endif

2006-09-07 09:35
vfp_yang
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-9-5
收藏
得分:0 
SCATTER to Memv
If Seek(M.编号) &&前提:以"编号"建立索引且为当前索引,否则使用Locate
=MessageBox("编号重复!",0+16+0,"提示:")
Else
APPEN BLANK
GATHER from Memv
Endif
同意楼上的意见!Tiger大哥和fown快成我们的偶像了!

用VFP的人还有许多,所以永远不可能退出历史舞台!深度痴迷于VFP。
2006-09-07 11:31
玲子
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-8-24
收藏
得分:0 
以下是引用Tiger5392在2006-9-6 22:15:52的发言:
要是真的没有太多的记录数,追加记录之前用locate命令确认是否有重复记录是个好办法. 不过, 根据fown的意见, 必须考虑程序执行的效率, 可以
(1)建立索引,用seek;
(2)用select-sql;
(3)用calculate cnt()等
都能进行判断. 但要注意的是, 必须先判断后追加

先判断后追加?那我的数组添加不是没用了吗?我是先添加再把最后一个用数组复制过来的,为了方便录入
所以是先追加了再判断,有重复就把最后一个删了
先判断再追加可以实现录入象用数组那样方便吗?怎么设计呢?我觉得不太可能,因为我首先要存放一个记录的某个字段来判断是不是有重复啊,那么要实现输入这个字段方便的话,也是要在最后一个的基础上稍做修改的
所以我想添加了最后一个后,先算出总共有多少个记录,让这个记录数减一,再用for循环实现,这样就可以实现除最后一个外是否有重复了,怎么编程呢?


2006-09-07 18:40
fown
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:58
帖 子:1229
专家分:171
注 册:2005-5-26
收藏
得分:0 

如果多条记录,只有一个字段不同,为了提高速度的话,要看你不同的字段是什么样式的了是数字还是汉字啊


有人说VFP不行了,我想说,你连VFP十分之一的功能都不会用,你怎么知道VFP不行?本人拒绝回答学生的问题我回答问题一般情况下只提供思路不提供代码,请理解
2006-09-07 18:43
快速回复:怎么判断一个表中是否有这个记录(特殊)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033827 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved