我总共有6个字段,其中5个字段(1,2,3)是要全部的改变,其余的3个(4,5,6)只是改变一条,代码是这样写的 
with adoquery1 do  //这里改所表中这个段的数据,这里过不去,提示不在edit  insert或update状态 
begin 
close; 
sql.clear; 
sql.add('select * from tabel1'); 
open; 
edit; 
while not eof do 
begin 
  fieldbyanme('1').asstrings:=edit1.text; 
  fieldbyanme('2').asstrings:=edit2.text; 
  fieldbyanme('3').asstrings:=edit3.text; 
next; 
end; 
post; 
end; with adoquery1 do  //这里只是改这一行的数据这里可以成功, 
begin 
close; 
sql.clear; 
sql.add('select * from tabel1 where partno='+quotedstr(edit7.text)); 
open; 
edit; 
  fieldbyanme('4').asstrings:=edit4.text; 
  fieldbyanme('5').asstrings:=edit5.text; 
  fieldbyanme('6').asstrings:=edit6.text; 
post; 
end; 
要求帮助的是,能不能不用二组代码一组就解决,二,就是为何第一组改所有列这几个字段时代码通不过,请高手帮忙看一看

解决方案 »

  1.   

    with adoquery1 do  //这里改所表中这个段的数据,这里过不去,提示不在edit  insert或update状态 
    begin 
    close; 
    sql.clear; 
    sql.add('select * from tabel1'); 
    open; 
    ////edit; 
    while not eof do 
    begin 
    edit; /////----
      fieldbyanme('1').asstrings:=edit1.text; 
      fieldbyanme('2').asstrings:=edit2.text; 
      fieldbyanme('3').asstrings:=edit3.text; 
    post; /////----
    next; 
    end; 
    //post; 
    end; with adoquery1 do  //这里只是改这一行的数据这里可以成功, 
    begin 
    close; 
    sql.clear; 
    sql.add('select * from tabel1 where partno='+quotedstr(edit7.text)); 
    open; 
    edit; 
      fieldbyanme('4').asstrings:=edit4.text; 
      fieldbyanme('5').asstrings:=edit5.text; 
      fieldbyanme('6').asstrings:=edit6.text; 
    post; 
    end;