>>> >>>local lnRecno >>> >>>SELECT MAX(billno) from mstr INTO ARRAY laAarray >>>thisform.text1.value=(RIGHT(STR(YEAR(mstr.datein),4),2) + '_'+RIGHT(STR(10000+mstr.billno+1,5),4)) >>> >>>Select 1 >>>use mstr >>> >>>GO BOTTOM &&& to save Last RecordNo >>> >IF EOF() && empty table mstr.dbf > lnRecno = 0 >ELSE > lnRecno = recno() &&& here >ENDIF >>>Append From Dbf('temp') >>>goto lnRecno + 1 && if dbf('temp') contains no records, this line will fail, so you must check * that before you append in the preceding line >>>scan rest && without REST, you scan all records! >>> replace w1 with thisform.text14.value, w2 with thisform.text16.value, dis with * thisform.text27.value, net with thisform.text28.value >>> replace billno with val(right (thisform.text1.Value,4)), datein with date() >>>endscan >>> >>> With thisform.grid1 >>> .recordsource = '' >>> Select temp >>> .recordsource = 'temp' >>> thisform.text1.SetFocus >>> thisform.refresh >>> endwith >>> >>> with thisform.Grid1 >>> .Recordsource = .Recordsource >>>endwith >>>> >>>> ******************************************** >>>> thisform.text1.value=space(10) >>>> thisform.text2.value=ctod(" / / ") >>>> thisform.text3.value=space(10) >>>> thisform.text4.value=space(10) >>>> thisform.text5.value=space(10) >>>> thisform.text6.value=0 >>>> thisform.text7.value=0 >>>> thisform.text8.value=0 >>>> thisform.text10.value=0 >>>>SELECT mstr >>>>SELECT MAX(billno) from mstr INTO ARRAY laAarray >>>>thisform.text1.value=(RIGHT(STR(YEAR(mstr.datein),4),2) + '_'+RIGHT(STR(10000+laAarray[1]+1,5),4)) >>>> >>>> >>>>With thisform.grid1 >>>> .recordsource = '' >>>> Select temp >>>> delete all >>>> .recordsource = 'temp' >>>> thisform.text1.SetFocus >>>> thisform.refresh >>>> endwith >>>> >>>> >>>> thisform.grid1.refresh >>>>>>>>thanks