我写了一个登陆界面,想实现不同的人员进入不同的界面
代码如下:
procedure TFrmlogin.SpeedButton1Click(Sender: TObject);begin
UserName:=Edit1.Text;
UserType:=CBduty.SelText;
code:=Edit2.Text;
LogTimes:=0;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from employee where employee_name='''+Edit1.Text+''' and password='''+Edit2.text+''' and employee_duty='''+Cbduty.text+'''');
ADOQuery1.Open;
if ADOQuery1.Eof then
begin
LogTimes := LogTimes+1;
showmessage('错误的用户名或密码');
end
else
if LogTimes>=3 then
begin
showmessage('超过3次错误,将关闭登陆界面');
close;
end
else
begin
code := ADOQuery1.FieldByName('password').AsString;
UserName := ADOQuery1.FieldByName('employee_name').AsString;
if UserType ='仓管员' then
begin
LogTimes := 0;
ADOQuery1.Free;
Frmlogin.Hide;
kucunguanliForm.ShowModal;
Frmlogin.Show;
end
else
if UserType ='销售员' then
begin
LogTimes := 0;
ADOQuery1.Free;
Frmlogin.Hide;
Frmxs.ShowModal;
Frmlogin.Show;
end
else
if UserType ='系统管理' then
begin
LogTimes := 0;
ADOQuery1.Free;
Frmlogin.Hide;
Form1.ShowModal;
Frmlogin.Show;
end
else
if UserType ='售后服务' then
begin
LogTimes := 0;
ADOQuery1.Free;
Frmlogin.Hide;
frmUntrade.Show;
Frmlogin.Show;
end
endend;procedure TFrmlogin.SpeedButton2Click(Sender: TObject);
begin
close;
end;end.
发现登陆的时候有2个问题
1:不能重复登陆
2:必须先写用户名和密码,再选部门,不然无法正常登陆
请教下高手怎么解决这个问题啊,急死我了
帮忙解决下,谢谢了
代码如下:
procedure TFrmlogin.SpeedButton1Click(Sender: TObject);begin
UserName:=Edit1.Text;
UserType:=CBduty.SelText;
code:=Edit2.Text;
LogTimes:=0;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from employee where employee_name='''+Edit1.Text+''' and password='''+Edit2.text+''' and employee_duty='''+Cbduty.text+'''');
ADOQuery1.Open;
if ADOQuery1.Eof then
begin
LogTimes := LogTimes+1;
showmessage('错误的用户名或密码');
end
else
if LogTimes>=3 then
begin
showmessage('超过3次错误,将关闭登陆界面');
close;
end
else
begin
code := ADOQuery1.FieldByName('password').AsString;
UserName := ADOQuery1.FieldByName('employee_name').AsString;
if UserType ='仓管员' then
begin
LogTimes := 0;
ADOQuery1.Free;
Frmlogin.Hide;
kucunguanliForm.ShowModal;
Frmlogin.Show;
end
else
if UserType ='销售员' then
begin
LogTimes := 0;
ADOQuery1.Free;
Frmlogin.Hide;
Frmxs.ShowModal;
Frmlogin.Show;
end
else
if UserType ='系统管理' then
begin
LogTimes := 0;
ADOQuery1.Free;
Frmlogin.Hide;
Form1.ShowModal;
Frmlogin.Show;
end
else
if UserType ='售后服务' then
begin
LogTimes := 0;
ADOQuery1.Free;
Frmlogin.Hide;
frmUntrade.Show;
Frmlogin.Show;
end
endend;procedure TFrmlogin.SpeedButton2Click(Sender: TObject);
begin
close;
end;end.
发现登陆的时候有2个问题
1:不能重复登陆
2:必须先写用户名和密码,再选部门,不然无法正常登陆
请教下高手怎么解决这个问题啊,急死我了
帮忙解决下,谢谢了
2.在窗口显示中加一条 UserType:=CBduty.SelText; 试试.!
试试在读数据库的之前ADOQuery1.first
// UserName := ADOQuery1.FieldByName('employee_name').AsString;
没看明白保存code,UserName有什么用。发现LZ太喜欢else,其实很多时候可以不用的。
试试我的代码procedure TFrmlogin.SpeedButton1Click(Sender: TObject);
begin
UserName:=Edit1.Text;
UserType:=CBduty.SelText;
code:=Edit2.Text;
LogTimes:=0;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from employee where employee_name='''+UserName+''' and password='''+code+''' and employee_duty='''+UserType+'''');//这句也可以这样写
ADOQuery1.SQL.Add('select * from employee where employee_name='+QuotedStr (UserName)+' and password='+QuotedStr(code)+' and employee_duty='+QuotedStr(UserType));
ADOQuery1.Open;
if LogTimes>=3 then
begin
showmessage('超过3次错误,将关闭登陆界面');
close;
end;
if ADOQuery1.RecordCount < 1 then
begin
LogTimes := LogTimes+1;
showmessage('错误的用户名或密码');
end else
begin
if UserType ='仓管员' then
begin
LogTimes := 0;
ADOQuery1.Free;
Frmlogin.Hide;
kucunguanliForm.ShowModal;
Frmlogin.Show;
end;
if UserType ='销售员' then
begin
LogTimes := 0;
ADOQuery1.Free;
Frmlogin.Hide;
Frmxs.ShowModal;
Frmlogin.Show;
end;
if UserType ='系统管理' then
begin
LogTimes := 0;
ADOQuery1.Free;
Frmlogin.Hide;
Form1.ShowModal;
Frmlogin.Show;
end;
if UserType ='售后服务' then
begin
LogTimes := 0;
ADOQuery1.Free;
Frmlogin.Hide;
frmUntrade.Show;
Frmlogin.Show;
end;
end;end;
建立一个字段大于多少的是什么用户,小于多少的是什么用户
比如说,如果用户验证正确,取出ID,
if id>2 then
//普通用户权限
else
//超级管理员权限
也可以再加其他的设置权限