我用了两个form,一个name为UserManage,上面放上了DataSource1,ADOConnection1,ADOQuery1,DBGrid1,三个DBEdit(分别为DBEdit1,DBEdit2,DBedit3),三个按钮(caption分别为add,change,delete),该form上所有控件属性均配置好.另一个form为AddUser,上面放了edit1,edit2,Combobox1,和一个按钮(caption为add).数据库为xscxda.mdb,表名为admin,表admin的字段有id,name,password,department,其中id为自动编号,另外三者为文本型,不允许为空代码如下:
unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DBCtrls, Mask, DB, ADODB, Grids, DBGrids;type
  TUserManage = class(TForm)
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    ADOConnection1: TADOConnection;
    ADOQuery1: TADOQuery;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
    DBComboBox1: TDBComboBox;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  UserManage: TUserManage;implementationuses Unit2;{$R *.dfm}procedure TUserManage.Button2Click(Sender: TObject);
begin
  if (trim(dbedit1.Text)<>'')and(trim(dbedit2.Text)<>'') then
   try
     ADOQuery1.Post;
   except
     showmessage('对不起,修改失败,请先尝试其他操作!');
   end
  else
    showmessage('用户名和密码都不允许为空!');
end;procedure TUserManage.Button3Click(Sender: TObject);
begin
   try
    ADOQuery1.Delete;
  except
    showmessage('对不起,删除失败,请先尝试其他操作!');
  end;
end;procedure TUserManage.Button1Click(Sender: TObject);
begin
   if not assigned(AddUser) then
        begin
         AddUser:=TAddUser.Create(nil);
         UserManage.ShowModal;
        end
      else
         AddUser.ShowModal;
end;procedure TUserManage.FormCreate(Sender: TObject);
begin
  if adoquery1.Active=true then adoquery1.Active:=false;
     adoquery1.SQL.Clear;
     adoquery1.SQL.Add('select * from admin');
     adoquery1.Active:=true;
     DBEdit1.DataField:='name';
     DBEdit2.DataField:='password';
     DBComboBox1.DataField:='department';
end;end.///////////////////////////////////////////////////////////////////////////
unit Unit2;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;type
  TAddUser = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    ComboBox1: TComboBox;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  AddUser: TAddUser;implementationuses Unit1;{$R *.dfm}procedure TAddUser.Button1Click(Sender: TObject);
  var
 sqlstr:string;
begin
  if (trim(edit1.Text)<>'')and (trim(edit2.Text)<>'') then
    try
      //判断数据表中是否已有该用户
     if UserManage.adoquery1.active=true then UserManage.adoquery1.Active:=false;
          UserManage.adoquery1.SQL.Clear;
     UserManage.ADOQuery1.SQL.Add('select * from admin where name='+''''+trim(edit1.Text)+'''');
     UserManage.ADOQuery1.Active:=true;
     if UserManage.ADOQuery1.RecordCount=0 then
     //没有该用户则增加
      begin
       if UserManage.adoquery1.active=true then UserManage.adoquery1.Active:=false;
          UserManage.adoquery1.SQL.Clear;
       //表admin的字段有id,name,password,department,其中id为自动编号,另外三者为文本型,不允许为空
       sqlstr:='insert into admin(name,password,department) values('+''''+edit1.Text+''''+','+''''+edit2.Text+''''+','+''''+ComboBox1.Text+''''+')';
       UserManage.adoquery1.SQL.Add(sqlstr);
       try
          UserManage.ADOQuery1.Prepared;
          UserManage.adoquery1.ExecSQL;
          if UserManage.adoquery1.active=true then UserManage.adoquery1.Active:=false;
           UserManage.adoquery1.SQL.Clear;
          UserManage.adoquery1.SQL.Add('select * from admin');
          UserManage.adoquery1.Active:=true;
          showmessage('用户添加成功!');
          edit1.Text:='';
          edit1.SetFocus;
       except
          showmessage('用户添加失败!');
          if UserManage.adoquery1.active=true then UserManage.adoquery1.Active:=false;
            UserManage.adoquery1.SQL.Clear;
          UserManage.adoquery1.SQL.Add('select * from admin');
          UserManage.adoquery1.Active:=true;
       end;
      end
     else
       showmessage('数据表中已有该用户,不允许用户名有相同的管理员!');
    except
    end
  else
    showmessage('用户名和密码不允许为空!');
end;end.
但是,在添加用户的时候提示insert into admin(name,password,department) values ('test','1234','123')有错,不知道为什么?