zrecs=RECCOUNT() IF zrecs>0 x=1 GO top DO WHILE x<=zrecs IF x<=zrecs GO x ELSE EXIT ENDIF thisobject='Dayjobsline'+ALLTRIM(STR(x)) thisform.&thisobject..visible=.t. thisform.&thisobject..SetAll("controlsource",'',"EditBox") &&remove the datasource here, and the 'row' keeps the correct data! I know it's cheap and dirty, but it works. x=x+1 ENDDO ENDIFThanks for all the help! If you have a more elegant solution, I look forward to seeing it!!