PROCEDURE ChangeGridSource LPARAMETERS tcNewRecordSource LOCAL lnSelObjectCount, loGridRef, lnCnt LOCAL ARRAY laSelectedObject[1], laColumnSources[1] lnSelObjectCount = ASELOBJ(laSelectedObject) IF lnSelObjectCount = 0 WAIT WINDOW 'Select a grid in Form Designer first' nowait RETURN ENDIF loGridRef = laSelectedObject[1] IF loGridRef.BaseClass <> 'Grid' WAIT WINDOW 'One Grid object must be selected' nowait RETURN ENDIF IF loGridRef.ColumnCount>0 DIMENSION laColumnSources[loGridRef.ColumnCount] FOR lnCnt = 1 TO loGridRef.ColumnCount laColumnSources[lnCnt] = JUSTEXT(loGridRef.Columns(lnCnt).controlsource) NEXT ENDIF loGridRef.RecordSource = tcNewRecordSource FOR lnCnt = 1 TO loGridRef.ColumnCount IF !EMPTY(laColumnSources[lnCnt]) loGridRef.Columns(lnCnt).ControlSource = tcNewRecordSource+'.'+laColumnSources[lnCnt] loGridRef.Columns(lnCnt).setall('ControlSource',tcNewRecordSource+'.'+laColumnSources[lnCnt]) ENDIF NEXTHope this help