请各位大神帮我看看,判断ACCESS里用户名是否重复。
想实现功能:单击'添加用户'按钮,判断表里是否有相同的用户名,如果有就弹出提示阻止,如果没有就添加。
问题:为什么第一次能正确判断,但只要一有不重复用户名添加以后,重复的用户名也能添加了,起不到阻止作用了。
下面是代码,小弟刚接触编程,请各位大神帮帮忙,RZ~
- Delphi(Pascal) code
procedure TUserControl.btn_AddUserNameClick(Sender: TObject);var boolSame:Boolean;begin //初始化 boolSame:=True; //遍历数据库所有记录,查看是否有相同的用户名 while not DM.ADOQuery_MJ.Eof do begin if edt_AddUsers.Text=DM.ADOQuery_MJ.FieldByName('UserName').AsString then begin boolSame:=False; Break; end else begin boolSame:=True; DM.ADOQuery_MJ.Next; end; end; if boolSame then begin with DM.ADOQuery_MJ do begin Append; FieldByName('UserName').AsString:=edt_AddUsers.Text; FieldByName('PassWord').AsString:=edt_AddPassWord.Text; Post; end; end else begin DM.MyShowMessage('用户名已存在,请重试!'); end;end;[解决办法]
DM.ADOQuery_MJ.First;
while not DM.ADOQuery_MJ.Eof do
不过这样循环判断会很慢的,用Locate或者重新查询吧
with DM.ADOQuery_MJ do
begin
if locate('UserName',edt_AddUsers.Text,[]) then
DM.MyShowMessage('用户名已存在,请重试!')
else begin
Append;
FieldByName('UserName').AsString:=edt_AddUsers.Text;
FieldByName('PassWord').AsString:=edt_AddPassWord.Text;
Post;
end;
end;