dimension thisform.aSelected[1] && Create first 'fake' element (initialized by .f.) local lnSelect, lnk, lnRecno lnk=0 lnSelect=select() select (thisform.myGrid.RecordSource) && myGrid is multiselectedgrid lnRecno=recno() && Save record position scan for selected lnk=lnk+1 dimension thisform.aSelected[lnk] && Redimension array thisform.aSelected[lnk]=MyField && MyField is from grid.recordsource endscan go lnRecno && restore record position select (lnSelect)This is from the top of my head and untested, but should give you a start point.