table1所连接的数据表你设置好了没,出现这种错误,一般都是因为,数据集控件没有被激活或是表没设置好.

解决方案 »

  1.   


    table1.active:=true;
    这个都设置好了!!!结果是一样的!运行没问题!一点按保存行程序就报错!!
    删除掉这个代码就正常!!
    procedure Taddfrm.FormCreate(Sender: TObject); 
      var 
        maxNO,tmp:integer; 
    begin 
        rydate.Date:=now; 
        cydate.Date:=now; 
        with table1 do 
        begin 
          Open; 
          First; 
          maxNO:=FieldByName('hz_num').AsInteger; 
        while not eof do 
        begin 
            tmp:=FieldByName('hz_num').AsInteger; 
            if maxNO <tmp then maxNO:=tmp; 
            next; 
            end; 
            close; 
            end; 
            edit1.Text:=inttostr(maxNO+1); 
        end; 
      

  2.   

        begin
            tmp:=FieldByName('hz_num').AsInteger;
            if maxNO <tmp then maxNO:=tmp;
            next;
            end;
            close; //----------------看这行,循环完毕后,你把table1关闭了
            end;
            edit1.Text:=inttostr(maxNO+1);
        end;
      

  3.   

    在保存按钮的 Append; 前面加一个open;4楼的被错误的代码缩进忽悠了,呵呵
      

  4.   

    begin 
            tmp:=FieldByName('hz_num').AsInteger; 
            if maxNO <tmp then maxNO:=tmp; 
            next; 
            end; 
            close;    十有八九它的问题了,好好看看吧,肯定循环中给关了
            end; 
            edit1.Text:=inttostr(maxNO+1); 
        end;
      

  5.   

    谢谢楼上各位了!!问题就是处在append前面少了个open;