if (ADOTable1.locate('ID',trim(Edit1.text),[loPartialKey])) and (ADOTable1.locate('PAS',trim(Edit2.text),[loPartialKey])) then
begin
  .....
end;
我用的是Access数据库,ID哪个字段属性里面有个默认值我设置成‘admin’,为什么在登陆的时候用'admin'进不去,只能用‘user’才能进去。而后面一个都可以

解决方案 »

  1.   

    if (ADOTable1.locate('ID;PAS',VarArrayOf([trim(Edit1.text),trim(Edit2.text)]),[]) then
    begin
    ...
    end;
      

  2.   

    谢谢楼上,还是不行,我想请教一下,用ACCESS做登陆界面怎么做?最好写点步骤,谢谢
      

  3.   

    unit Yhdl;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, Buttons, ExtCtrls, DB, ADODB;type
      TYhdlFrm = class(TForm)
        Adoqr_User: TADOQuery;
        Adoqr_UserID: TAutoIncField;
        Adoqr_UserUserName: TWideStringField;
        Adoqr_UserPassWord: TWideStringField;
        Adoqr_Userifadmin: TBooleanField;
        Panel1: TPanel;
        Label1: TLabel;
        Label2: TLabel;
        Image1: TImage;
        Label3: TLabel;
        Edt_Pass: TEdit;
        yhdlcombx: TComboBox;
        dlbt: TBitBtn;
        qxbt: TBitBtn;
        procedure dlbtClick(Sender: TObject);
        procedure qxbtClick(Sender: TObject);
        procedure FormShow(Sender: TObject);
        procedure Edt_PassKeyDown(Sender: TObject; var Key: Word;
          Shift: TShiftState);
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
        procedure yhdlcombxSelect(Sender: TObject);
      private
         Rights: integer;
        { Private declarations }
      public
        { Public declarations }
      end;var
      YhdlFrm: TYhdlFrm;implementationuses  Main;{$R *.dfm}procedure TYhdlFrm.dlbtClick(Sender: TObject);
    begin
       adoqr_User.Open;
       inc(Rights);   if (yhdlcombx.Text=trim(adoqr_User.FieldByName('username').AsString)) and
          (Edt_Pass.Text=adoqr_User.FieldByName('PassWord').AsString) then
       begin
          mainfrm.StatusBar1.Panels.Items[3].Text:='  '+adoqr_User.FieldValues['username'];
          mainfrm.ifadmin:=adoqr_User.fieldbyname('ifadmin').AsBoolean;
          if adoqr_User.FieldByName('ifadmin').AsBoolean=false then
          begin
            mainfrm.N4.Enabled:=false;
            mainfrm.N6.Enabled:=false;
          end;
          yhdlfrm.Close ;
        end
        else
        begin
           messagebox(handle,'输入密码不正确!','错误',MB_OK+MB_ICONERROR);
           if Rights=3 then
           begin
              messagebox(handle,'密码输入超过三次,系统退出!','提示',MB_OK+MB_ICONINFORMATION);
              Application.Terminate;
           end;
           yhdlcombx.SetFocus;
        end;
    end;procedure TYhdlFrm.qxbtClick(Sender: TObject);
    begin
      application.Terminate;
    end;procedure TYhdlFrm.FormShow(Sender: TObject);
    var
       i:integer;
    begin
       adoqr_User.Open;
       adoqr_User.First;
       for i:=1 to adoqr_User.RecordCount do
       begin
          yhdlcombx.Items.Add(adoqr_User.FieldByName('username').AsString);
          adoqr_User.Next;
       end;
    end;procedure TYhdlFrm.Edt_PassKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if key=13 then
      begin
        dlbt.Click;
      end;
    end;procedure TYhdlFrm.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      adoqr_User.Close;
      action:=cafree;
      Yhdlfrm:=nil;
    end;procedure TYhdlFrm.yhdlcombxSelect(Sender: TObject);
    begin
      adoqr_User.Locate('username',yhdlcombx.Text,[]);
    end;end.