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;
begin tmp:=FieldByName('hz_num').AsInteger; if maxNO <tmp then maxNO:=tmp; next; end; close; //----------------看这行,循环完毕后,你把table1关闭了 end; edit1.Text:=inttostr(maxNO+1); end;
在保存按钮的 Append; 前面加一个open;4楼的被错误的代码缩进忽悠了,呵呵
begin tmp:=FieldByName('hz_num').AsInteger; if maxNO <tmp then maxNO:=tmp; next; end; close; 十有八九它的问题了,好好看看吧,肯定循环中给关了 end; edit1.Text:=inttostr(maxNO+1); end;
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;
tmp:=FieldByName('hz_num').AsInteger;
if maxNO <tmp then maxNO:=tmp;
next;
end;
close; //----------------看这行,循环完毕后,你把table1关闭了
end;
edit1.Text:=inttostr(maxNO+1);
end;
tmp:=FieldByName('hz_num').AsInteger;
if maxNO <tmp then maxNO:=tmp;
next;
end;
close; 十有八九它的问题了,好好看看吧,肯定循环中给关了
end;
edit1.Text:=inttostr(maxNO+1);
end;