procedure TForm2.BitBtn1Click(Sender: TObject);
var //CmdStr:String;
    UserType:integer;
begin
    adoquery1.close;
    adoquery1.SQL.Clear;    Form2.ADOQuery1.Connection:=DataM1.ADOCon1;
    form2.ADOQuery1.DataSource:=datam1.DataSource1;
    DataM1.ADOCon1.Connected:=true;
    DataM1.ADOCon1.LoginPrompt:=false;
    //CmdStr:='select * from user where userName='''+Edit1.Text+''' and password='''+edit2.Text+'''';
    adoquery1.SQL.Add('select * from user') ;
    adoquery1.SQL.Add('where userName='''+Edit1.Text+'''');
    adoquery1.SQL.Add('and password='''+edit2.Text+'''');
    //adoquery1.SQL.Add(CmdStr);
    adoquery1.Open;
    if adoquery1.RecordCount<>0 then
       begin
         UserType:=adoquery1.FieldList[2].AsInteger;
         if UserType=0 then
            begin
            form1.N6.Enabled:=true;
            end
         else
            begin
            form1.N6.Enabled:=true;
            form1.N15.Enabled:=true;
            end
       end
    else
       if(messagedlg('输入的用户名与口令不符!是否重输?',mtinformation,[mbyes,mbno],0)<>mryes)then
         close;end;

解决方案 »

  1.   

    procedure TForm1.登陆(Sender: TObject);
    begin
     Form2.showmodal;
    end;
      

  2.   

    form2.ADOQuery1.DataSource:=datam1.DataSource1; 这句话去掉
      

  3.   

    Project ACSR_MIS.exe raised exception class EOleException with message'From子局语法错误。'process stoped,use step or run to continue.
      

  4.   

    DataM1.ADOCon1.Connected:=true;
        DataM1.ADOCon1.LoginPrompt:=false;这两句互换。
      

  5.   

    “From子局语法错误”看看你的SQL语句,把表名user用[]括起来。
      

  6.   

    userName='''+Edit1.Text+''' //这里的应该是字符是吧!userName=quotedstr(Edit1.Text)
      

  7.   

    adoquery1.SQL.Add('select * from user') ;
        adoquery1.SQL.Add(' where userName='''+Edit1.Text+'''');
        adoquery1.SQL.Add(' and password='''+edit2.Text+'''');//好像这都要空一格吧
      

  8.   

    procedure Tloginform.BitBtn1Click(Sender: TObject);
    begin
    if trim(yhm.Text)='' then
    begin
    messagebox(handle,'用户名称不能为空!','提示',mb_ok+mb_iconerror);
    yhm.SetFocus;
    exit;
    end;
    adoquery2.Close;
    adoquery2.SQL.Clear;
    adoquery2.SQL.Add('select * from xt00');
    adoquery2.SQL.Add('where');
    adoquery2.SQL.Add('t12='''+trim(yhm.Text)+'''');
    adoquery2.Open;
    if trim(edit1.Text)<>adoquery2.FieldByName('t14').AsString then
    begin
    messagebox(0,'通行密码错误!','提示',16);
    edit1.SetFocus;
    exit;
    end
    else
    begin
    loginform.Close;
    end;
    end;//这是判断权限
    procedure Tloginform.FormCloseQuery(Sender: TObject;
      var CanClose: Boolean);
    var
      i,j:integer;
    begin
        with adoquery2 do begin
          Close;
          SQL.Clear;
          SQL.Add('select * from xt00 where t12=:a');
          Parameters[0].Value:=yhm.Text;
          Open;
        end;
        for i:=0 to mainform.MainMenu.Items.Count-3 do begin
           for j:=0 to mainform.MainMenu.Items[i].Count-1 do begin
               if pos(midstr(mainform.MainMenu.Items[i].Items[j].Name,2,4),adoquery2.fieldbyname('t15').asstring)<>0 then begin
                  mainform.MainMenu.Items[i].Items[j].Enabled:=true;
               end else begin
                  mainform.MainMenu.Items[i].Items[j].Enabled:=false;
               end;
           end;
        end;
        adoquery2.Open;
        mainform.StatusBar1.Panels[3].Text:=yhm.Text;
      end;