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 nRecno = recno() 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