你第一次edit之后已经post了,所以在第二次post时会出错;
    ShowMessage(form1.Table1.Fields.Fields[4].AsString);
    
    form1.Table1.Edit;//加上这句就好了;    form1.Table1.Fields.Fields[1].AsString:=lunxiu1;
    form1.Table1.Fields.Fields[9].AsString:=zuwei1;
    form1.Table1.Post;    ShowMessage('调配成功!');

解决方案 »

  1.   

    table1后面没必要用一个fields,直接接fields[1]就行了,不过看起来好像和你的问题无关
      

  2.   

    //  form1.Table1.Locate('车号',form2.Edit1.Text,[]); //这句已经促使非编辑态
        form1.Table1.Locate('车号',form2.Edit1.Text,[]);
        ShowMessage(form1.Table1.Fields.Fields[4].AsString);    form1.Table1.Edit; //再加一条
        form1.Table1.Fields.Fields[1].AsString:=lunxiu1;
        form1.Table1.Fields.Fields[9].AsString:=zuwei1;
        form1.Table1.Post;    ShowMessage('调配成功!');
      

  3.   

    每当post或fresh后,table和query都不处于edit状态了,你要修改数据的话,就得再加一句,table1.edit;