*Form.MyColor lparameters tcControlsource lnRecno = recno() && Y if lower(justext(tcControlSource)) == 'myfield' && X * You might get column index position into array from field() * But keeping an array doesn't look very feasible thinking array limits * if limits are OK would be fast *.... return lnColorCode *Grid.init && Or anywhere like a commandbuttonclick with this for ix=1 to .Columncount .Columns(ix).DynamicBackColor = ; "(thisform.myColor('"+.Columns(ix).Controlsource+"'))" endfor endwithPS:You might also try varread() as the Y component.