请各位大神帮我看看,判断ACCESS里用户名是否重复。

q541825707 2012-07-19 06:24:45
想实现功能:单击'添加用户'按钮,判断表里是否有相同的用户名,如果有就弹出提示阻止,如果没有就添加。
问题:为什么第一次能正确判断,但只要一有不重复用户名添加以后,重复的用户名也能添加了,起不到阻止作用了。
下面是代码,小弟刚接触编程,请各位大神帮帮忙,囧RZ~

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;
...全文
138 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
q541825707 2012-07-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
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('用户名已存在,请重……
[/Quote]大哥,是不是有不重复的用户名添加以后,DM.ADOQuery_MJ就会自动定位到最新添加的记录处,然后就从最新记录处往下遍历?
kaikai_kk 2012-07-19
  • 打赏
  • 举报
回复
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;

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧