procedure TForm12.Button1Click(Sender: TObject);
var
num:integer;
str:string;
begin       if (edit4.Text='//')or (edit3.Text='')   then
       begin
       showmessage('請確保數量或日期正確!!!');
       edit3.SetFocus;
       exit;
       end;
   num:=adoquery1['借出數量']-strtoint(edit3.Text);
   if num>=0 then
     begin
       adotable1.Append;
       str:= adoquery1['資產編號'];
       adotable1['資產編號']:=adoquery1['資產編號'];
       adotable1['資產名稱']:=adoquery1['資產名稱'];
       adotable1['資產類別']:=adoquery1['資產類別'];
       adotable1['部門或科系']:=adoquery1['部門或科系'];
       adotable1['還入數量']:=strtoint(edit3.Text);
       adotable1['日期']:=strtodate(edit4.Text);
       adotable1['借方']:=adoquery1['借方'];       adotable1.Post;
       showmessage('    還入成功!!!    ');       //adoquery1.edit;
      // adoquery1['借出數量'] :=num;
       //adoquery1.post;
         //  if   adoquery1['借出數量']=0 then
         //       begin
         //       adoquery1.Delete;
         //       end;
     end
   else
       begin
        showmessage('     數量不對!!!    ');
        edit3.SetFocus;
        exit;
       end;//以下增加到 資產 表   //運行到這if語句 "有時" 會出錯:
//提示信息是:找不到要更新的列.最后讀取值已被更新.
  adoquery3.Open;
  adoquery3.First;
if  adoquery3.Locate('資產編號',str,[locaseinsensitive]) then
    begin
     adoquery3.Edit;
     adoquery3['數量'] := adoquery3['數量']+ strtoint(edit3.Text);
     adoquery3.Post;
     showmessage('    資產表修正成功!!!    ');
    end
else
 begin    adoquery3.Append;
    adoquery3['資產編號']:=    adotable1['資產編號'];
    adoquery3['資產名稱']:=    adotable1['資產名稱'];
    adoquery3['資產類別']:=    adotable1['資產類別'];
    adoquery3['部門或科系']:=  adotable1['部門或科系'];
    adoquery3['數量']:=        adotable1['還入數量'];
    adoquery3['日期']:=        adotable1['日期'] ;
    adoquery3.Post;
   showmessage('    資產表修正成功!!!    ');
 end;
//就是以上這段
  if  adoquery1.Locate('資產編號',str,[locaseinsensitive]) then
    begin
       adoquery1.edit;
       adoquery1['借出數量'] :=num;
       adoquery1.post;
     showmessage('    借出表修正成功!!!    ');
    end;
end;

解决方案 »

  1.   

    if num>=0 then
         begin
           adotable1.close;
           adotable1.edit;
           adotable1.Append;
    adoquery3['日期']:=        adotable1['日期'] ;
    adotable1.open;
    adoquery3.Post;
      

  2.   

    你的都缺少close,open,edit的之类的,仔细检查一下
      

  3.   

    adoquery1.Locate('資產編號',str,[locaseinsensitive]) 不能找到嗎?
      

  4.   

    注意,adoquery 增加修改或删除时,的逻辑!
      

  5.   

    就是沒有寫入文件?
    但post了呀
      

  6.   

    你没有进入编辑状态
    怎么append
      

  7.   

    哦,append還用?
    我好像從沒有用呀/