P pckite Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-02 #1 我ACCESS表里有一个字段‘学号’,现在要添加新的记录,如果遇到学号相同则提示出错,取消 添加记录,如果与原有的都不相同,想可正常添加记录,如何实现?
W windbell Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-02 #4 if exists(select 学号 from 表 where 学号='想播入的学号') then showmessage('已存在学号');
P pckite Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-02 #6 我试过了,按windbell的方法不行,它说exists没有定义。 如果是设主键的话,这只报文英的错误,而我是想让程序弹出框“错误:此学号已经存在!”, 谁有更详细的代码?
S SanDao Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-02 #7 >>按windbell的方法不行,它说exists没有定义。 老哥,风铃兄只是告诉你方法,你不会真的用exists吧! 不过自已写个函数也是可以的!
C c5195 Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-02 #9 在access中设置学号为主键,同时将其属性设为不可重复就行了, 当用DELPHI编程时,如果录入了相同的字段,BDE将会有出错提示, 因此同时还要编写代码处理此类BDE错误,以保证程序顺利运行
W windbell Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-02 #10 唉!这个问题的解很多,如靠dbms自身的完整性约束或你在程序中自己判断. 你应当自己先思考当不通再提问!这样才能真正的不断提高自己的水平.
G gellette Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-02 #11 你可以先用select 语句查一查该学号是否存在,若存在则提示存在信息,否则插入新记录。
P pckite Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-02 #12 不知道为什么,我的程序是插入数据后就判断是否重复,因为是这样,所以,即使是插入原来没有的,它也会 判断说是重复的。请各位指点,谢谢了!~ 最后有原代码,才好研究嘛!~
S szzhb Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-02 #13 Query1.close; Query1.sql.clear; Query1.sql.add('select 学号 from tablename'); Query1.open; if Query1.recordcount<>0 then showmessage('记录已存在');
Query1.close; Query1.sql.clear; Query1.sql.add('select 学号 from tablename'); Query1.open; if Query1.recordcount<>0 then showmessage('记录已存在');
P pckite Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-02 #14 现在输入框EDIT1, 想判断输入的数据是否与字段‘学号’里的值是否相等,如果不等则插入数据,否则弹出中文提示 取消操作,如何实现?请不要答非所问!~
C crazypc Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-02 #15 就跟 szzhb 一样,先查询,再用插入。。。 adoQuery1.close; adoQuery1.sql.clear; adoQuery1.sql.add('select 学号 from tablename'); adoQuery1.open; if adoquery1.FieldByName('学号').AsString<>'' then showmessage('记录已存在'); else 插入数据。。。。。。。
就跟 szzhb 一样,先查询,再用插入。。。 adoQuery1.close; adoQuery1.sql.clear; adoQuery1.sql.add('select 学号 from tablename'); adoQuery1.open; if adoquery1.FieldByName('学号').AsString<>'' then showmessage('记录已存在'); else 插入数据。。。。。。。
N necat Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-02 #16 >>不知道为什么,我的程序是插入数据后就判断是否重复 你可以设一个循环,不取最后一条,来判断。 for i := 0 to dataset1.recordcount - 2 do begin if dataset1['学号'] = '你想添加的学号' then begin showmessage('此学号已存在'); Exit; end else if i < dataset1.recordcount then dataset1.next; end; dataset1.post;
>>不知道为什么,我的程序是插入数据后就判断是否重复 你可以设一个循环,不取最后一条,来判断。 for i := 0 to dataset1.recordcount - 2 do begin if dataset1['学号'] = '你想添加的学号' then begin showmessage('此学号已存在'); Exit; end else if i < dataset1.recordcount then dataset1.next; end; dataset1.post;
大 大胃王 Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-02 #18 >>如果是设主键的话,这只报文英的错误,而我是想让程序弹出框“错误:此学号已经存在!”, 你用try把它加工一下不就可以了吗? 或者 select 学号 from table where 学号="edit1.text" if recordset.recordcount >0 then messge("错误") else insert! 这样的办法不可以吗?
>>如果是设主键的话,这只报文英的错误,而我是想让程序弹出框“错误:此学号已经存在!”, 你用try把它加工一下不就可以了吗? 或者 select 学号 from table where 学号="edit1.text" if recordset.recordcount >0 then messge("错误") else insert! 这样的办法不可以吗?