| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2243 人关注过本帖
标题:检查重复记录的问题
取消只看楼主 加入收藏
eryiqingfan
Rank: 1
等 级:新手上路
威 望:2
帖 子:379
专家分:0
注 册:2006-8-15
收藏
 问题点数:0 回复次数:7 
检查重复记录的问题

检查da_cod是否重复,先是用APPEND 添加一条记录,然后在保存里检查是否重复

我的代码是这样写的:(参考过以前帖子的代码)
a=RECNO()
SELECT zgda
GO top
I=1
DO WHILE I<>a
SKIP -1
XM=ALLTRIM(thisform.pageframe1.page1.txtcod.Value)
Locate For zgda.da_cod=XM
I=I+1
ENDDO
If Found()
Messagebox("职工编号重复",48,"养老保险管理系统")
thisform.pageframe1.page1.txtcod.SetFocus ()
ENDIF

但是就是不重复,系统也会报重复,代码有什么问题?
或是给点其他意见。感谢!~~

搜索更多相关主题的帖子: 检查 记录 
2006-09-06 21:01
eryiqingfan
Rank: 1
等 级:新手上路
威 望:2
帖 子:379
专家分:0
注 册:2006-8-15
收藏
得分:0 
按楼上的方法还是一样,因为我的TEXT和数据连在一起了,GO TOP之后,TEXT里的记录也就是第一条的记录,要不我也不会那么麻烦还弄个循环了。

如果设为主索引,系统会自动报错,索引不唯一,但是用户不懂电脑的,就不知道该怎么弄了,生怕点错了。
然后我就这样写了一个代码:(将编号设置为主索引)
IF TABLEUPDATE(.F.)=.F.
MESSAGEBOX("编号错误",48,"管理系统")
THISFORM.pageframe1.page1.txtcod.SetFocus
Return
ENDIF

但是系统总是会先报索引把唯一,并不按照提示来进行。我也不知道怎么改了。

[此贴子已经被作者于2006-9-6 22:07:16编辑过]


学习ING... 安静的阳台,抬头那一小片天空,自由自在唱属于自己的歌. 鬼鬼£小鬼 ++UU
2006-09-06 22:01
eryiqingfan
Rank: 1
等 级:新手上路
威 望:2
帖 子:379
专家分:0
注 册:2006-8-15
收藏
得分:0 
nerror=1884?
是什么意思?

学习ING... 安静的阳台,抬头那一小片天空,自由自在唱属于自己的歌. 鬼鬼£小鬼 ++UU
2006-09-06 22:52
eryiqingfan
Rank: 1
等 级:新手上路
威 望:2
帖 子:379
专家分:0
注 册:2006-8-15
收藏
得分:0 
但是还是不能出现提示对话框.

我还想强调一下,是说添加了一条新记录,如果编号不是主索引,怎么来判断重复的问题.


我也自己想想.大家也给意见.

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


学习ING... 安静的阳台,抬头那一小片天空,自由自在唱属于自己的歌. 鬼鬼£小鬼 ++UU
2006-09-06 23:43
eryiqingfan
Rank: 1
等 级:新手上路
威 望:2
帖 子:379
专家分:0
注 册:2006-8-15
收藏
得分:0 
问题解决了,出在循环上。其实问题不难,大家细心的想一下就会知道。
我给个思路吧:

1.指针指在当前的记录值付给变量,并返回当前记录号a
2.GO TOP
我用了循环,I=1 若I<>a则判断:
IF zgda.da_name=XM
MESSAGEBOX("姓名重复",4+32,"报错")
EXIT
ENDIF
3.但是要是I=a了,就让I=a+1
其间需要指针自动下移SKIP

只要仔细考虑了,就有结果了,但是还是问出来,大家一起讨论,开阔视野了。
也有时候,一点小问题,可卡那里就是动不了,解决了还自己都想
最后不能忘记感谢大家的关注!~~

[此贴子已经被作者于2006-9-7 11:24:54编辑过]


学习ING... 安静的阳台,抬头那一小片天空,自由自在唱属于自己的歌. 鬼鬼£小鬼 ++UU
2006-09-07 11:20
eryiqingfan
Rank: 1
等 级:新手上路
威 望:2
帖 子:379
专家分:0
注 册:2006-8-15
收藏
得分:0 

还想问问,这里用了DO WHILE 的循环,如果记录很多,速度会不会慢啊?


学习ING... 安静的阳台,抬头那一小片天空,自由自在唱属于自己的歌. 鬼鬼£小鬼 ++UU
2006-09-09 01:01
eryiqingfan
Rank: 1
等 级:新手上路
威 望:2
帖 子:379
专家分:0
注 册:2006-8-15
收藏
得分:0 
是的,我在11楼写了一下,中间有条件选择.

学习ING... 安静的阳台,抬头那一小片天空,自由自在唱属于自己的歌. 鬼鬼£小鬼 ++UU
2006-09-09 08:48
eryiqingfan
Rank: 1
等 级:新手上路
威 望:2
帖 子:379
专家分:0
注 册:2006-8-15
收藏
得分:0 
用LOCATE FOR也可以不用循环
1.指针指在当前的记录值付给变量XM,并返回当前记录号a
2.GO TOP
LOCATE FOR zgda.da_name=XM .AND. RECNO()<>a

比循环简单多了.


学习ING... 安静的阳台,抬头那一小片天空,自由自在唱属于自己的歌. 鬼鬼£小鬼 ++UU
2006-09-10 23:15
快速回复:检查重复记录的问题
数据加载中...
 
   



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

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