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

检查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
wzxc
Rank: 9Rank: 9Rank: 9
来 自:齐鲁大地
等 级:贵宾
威 望:39
帖 子:985
专家分:1296
注 册:2006-4-25
收藏
得分:0 
SELECT zgda
GO top
Locate For alltrim(zgda.da_cod)=ALLTRIMthisform.pageframe1.page1.txtcod.Value)
If Found()
Messagebox("职工编号重复",48,"养老保险管理系统")
thisform.pageframe1.page1.txtcod.SetFocus ()
ENDIF

如果你不想职工编号重复存入话,设为主索引,就可以了。

认真看书学习,弄通Fox主义。
2006-09-06 21:51
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
wzxc
Rank: 9Rank: 9Rank: 9
来 自:齐鲁大地
等 级:贵宾
威 望:39
帖 子:985
专家分:1296
注 册:2006-4-25
收藏
得分:0 
参考一下本人的一段:
在“保存”按钮中的error事件中:
if nerror=1884
messagebox('密码输入错误,有重码!',0+16+0,'发票输入')
endif
在“保存”按钮中的click事件中:
insert into tablename from array ld
各文本框与数组邦定,输入完数据,点“保存”按钮。
将数组写入表。如无错误,继续下一份。
如有重码,error事件捕捉到,弹出信息框,提示错误。不会存入表,再进行修改。
对重码错误用户不需特别的操作。


认真看书学习,弄通Fox主义。
2006-09-06 22:40
eryiqingfan
Rank: 1
等 级:新手上路
威 望:2
帖 子:379
专家分:0
注 册:2006-8-15
收藏
得分:0 
nerror=1884?
是什么意思?

学习ING... 安静的阳台,抬头那一小片天空,自由自在唱属于自己的歌. 鬼鬼£小鬼 ++UU
2006-09-06 22:52
wzxc
Rank: 9Rank: 9Rank: 9
来 自:齐鲁大地
等 级:贵宾
威 望:39
帖 子:985
专家分:1296
注 册:2006-4-25
收藏
得分:0 
错误信息编码,索引“名称”不唯一
帮助文件理有啊

认真看书学习,弄通Fox主义。
2006-09-06 23:26
eryiqingfan
Rank: 1
等 级:新手上路
威 望:2
帖 子:379
专家分:0
注 册:2006-8-15
收藏
得分:0 
但是还是不能出现提示对话框.

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


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

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


学习ING... 安静的阳台,抬头那一小片天空,自由自在唱属于自己的歌. 鬼鬼£小鬼 ++UU
2006-09-06 23:43
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
好热闹!众狐仙都可能需要换一种思路了。也许你的设计思路来自生成器,且在生成器的基础上进行了修改。如果一开始就没有与生成器相关,你又如何实现你的功能呢?你可能回添加一个表格GRID1,再就是一个命令按钮组COMMANDGROUP1,若能再添加一两个文本框TEXT1和TEXT2用来实现查询(记得我为玲子回复过关于"下一个"这个帖子的)或增加或删除或修改,那么就可以充分地利用这些文本框了。
举一个例子。假如TEXT1的数据类型和宽度都与字段DA_COD一致,我们就利用它来检查数据是否重复.则在增加这个命令按钮的CLICK过程里写上这样的代码
cText1=THISFORM.TEXT1.VALUE
LOCATE FOR DA_COD=cText1
IF EOF()
APPEND BLANK
REPLACE DA_COD WITH cText1
ELSE
MESSAGEBOX("重复记录,不允许增加")
ENDIF
THISFORM.REFRESH
若还想实现数据的修改,这样好了,事先在表单的初始化部分里(THISFORM.INIT),写上这样的代码
THISFORM.GRID1.READONLY=.F.
THISFORM.GRID1.COLUMN1.READONLY=.T. &&假设第一列是DA_COD,关键字段
这样的话,除了关键字段以外,别的任何数据都可以在表格里任意修改,保证修改功能的实现。
(特别说明: 个人看法, 希望对楼主有帮助)

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2006-09-06 23:53
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:11
btchongzi
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2006-8-22
收藏
得分:0 
为什么不让编号自动生成,杜绝重复的现象?
2006-09-07 08:18
快速回复:检查重复记录的问题
数据加载中...
 
   



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

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