登陆界面问题,急!!!!!
我写了一个登陆界面,想实现不同的人员进入不同的界面
代码如下:
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
end
end;
procedure TFrmlogin.SpeedButton2Click(Sender: TObject);
begin
close;
end;
end.
发现登陆的时候有2个问题
1:不能重复登陆
2:必须先写用户名和密码,再选部门,不然无法正常登陆
请教下高手怎么解决这个问题啊,急死我了
帮忙解决下,谢谢了
[解决办法]
1.ADOQuery1.Free; 去掉试试.!
2.在窗口显示中加一条 UserType:=CBduty.SelText; 试试.!
[解决办法]
你的登陆完一次以后数据库指针在那里知道吗
试试在读数据库的之前ADOQuery1.first
[解决办法]
// code := ADOQuery1.FieldByName( 'password ').AsString;
// 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;
[解决办法]
若想权限控制的话,这种方法不可取
[解决办法]
我覺得權限控制最好用模塊比較好一點
操作方便,管理方便