local ix, oRecord local array arrFields[1], arrStruc[1] select distinct fieldname from oldTable into array arrFields dimension arrStruc[alen(arrFields,1)+1,4] arrStruc = 0 arrStruc[1,1] = "ID" arrStruc[1,2] = "I" arrStruc[1,3] = 4 for ix=1 to alen(arrFields,1) arrStruc[ix+1,1] = trim(arrFields[ix]) arrStruc[ix+1,2] = "C" arrStruc[ix+1,3] = 50 endfor create table newTable from array arrStruc scatter name oRecord blank select * from oldTable order by id into cursor crsTemp scan oRecord.id = crsTemp.ID scan while ID = oRecord.id store FieldValue to ('oRecord.'+fieldname) endscan skip -1 select NewTable && VFP8 : insert into NewTable from name oRecord * Could also use scatter memvar, insert into .. from memvar append blank gather name oRecord scatter name oRecord blank select crsTemp endscanCetin