LOCAL ARRAY laList[1] *** Get Object Members of DE =AMEMBERS(laList, THISFORM.DATAENVIRONMENT, 2) IF EMPTY(laList[1]) *** Nothing in DE RETURN ENDIF IF ALEN( laList,1 ) > 0 FOR i = 1 TO ALEN(laList,1 ) loObj = EVAL("ThisForm.DataEnvironment."+laList[i]) IF LOWER(loObj.BASECLASS ) = 'cursor' AND "\"$loObj.DATABASE IF !EMPTY(loObj.DATABASE) *** Contained Table lcDBC = SUBSTR(loObj.DATABASE, RAT('\', loObj.DATABASE)) loObj.DATABASE = tcNewDataPath + lcDBC IF !DBUSED(loObj.Database) OPEN DATABASE (loObj.Database) ENDIF SET DATABASE TO (loObj.Database) ELSE *** Free Table WAIT WINDOW 'OPEN FREE TABLE' lcDBC = SUBSTR( loObj.CursorSouce, RAT('\',loObj.CursorSouce)) loObj.CursorSouce = tcNewDataPath + lcDBC ENDIF ENDIF NEXT ENDIFAny comments,