* Dataenvironment.beforeopentables cNewDataPath = _screen.comment && or wherever stored set path to (cNewDataPath) nDataObjects = amembers(aMyArray,this,2) cOldPath = this.&aMyArray[1]..database cNewDbPath = cNewDataPath+substr(cOldPath,rat("\",cOldPath)) for ix = 1 to nDataObjects if this.&aMyArray[ix]..baseclass = "Cursor" this.&aMyArray[ix]..database = cNewDbPath endif endfor Here is a way to change path at runtime using above : *Method processing user data path && Likely to be called instead of do form lparameters cNewDataPath, fForm _screen.comment=cNewDataPath && Instead of pub var - if !used to store something else like form instances do form (fForm)Cetin