begin
  adoTable1.Open; with adotable1 do
  begin
  adoTable1.Edit;
 if (adoTable1.Fields[0].AsString=Edit1.Text) or(adoTable1.Fields[1].AsString=Edit2.Text)  then
   adoTable1.Fields[1].AsString:=Edit3.Text;
   adotable1.next;
  adoTable1.Post;
  adoTable1.Refresh;
  end;  ShowMessage('修改成功!!');
    Edit1.Clear;
    Edit2.Clear;
    Edit3.Clear;
    Edit4.Clear;
    adoTable1.Close;
    close;
  end;

解决方案 »

  1.   

    忘了:   意思是:如果搜索到数据里第一列等于EDIT1,第二列等于EDIT2,就用EDIT3的数据,替换第二列的数据!!!
      

  2.   


     with adotable1 do
      begin
      adoTable1.Edit;
    while not EOF do//////////////////加
    begin
     if (adoTable1.Fields[0].AsString=Edit1.Text) or(adoTable1.Fields[1].AsString=Edit2.Text)  then
       adoTable1.Fields[1].AsString:=Edit3.Text;
       adotable1.next;
    end;
      adoTable1.Post;
      adoTable1.Refresh;
      end;
      

  3.   

    还不行!!!!还显示错误:
                    Dataset not inedit or insert mode.
      

  4.   

    with adotable1 do
      begin  
    while not EOF do//////////////////加
    begin
     if (adoTable1.Fields[0].AsString=Edit1.Text) or(adoTable1.Fields[1].AsString=Edit2.Text)  then
       begin
       adoTable1.Edit;   //当记录移动时会自动POST,所以要把EDIT放在循环内。
       adoTable1.Fields[1].AsString:=Edit3.Text;
       end;
       adotable1.next;  
    end;
      adoTable1.Post;
      adoTable1.Refresh;
      end;