loCR=CREATEOBJECT("CrystalRuntime.Application") loRpt=loCR.OpenReport("MyReport.rpt") IF loRpt.HasSavedData loRpt.DiscardSavedData() ENDIF FOR EACH loTable IN loRpt.Database.Tables loTable.Location=FORCEPATH(loTable.Location,"c:\MyPath\")+".dbf" ENDFOR FOR EACH loSection IN loRpt.Sections FOR EACH loObject IN loSection.ReportObjects IF loObject.Kind=5 && Subreport loSub=loRpt.OpenSubreport(loObject.SubReportName) IF loSub.HasSavedData loSub.DiscardSavedData() ENDIF FOR EACH loTable IN loSub.Database.Tables loTable.Location=FORCEPATH(loTable.Location,"c:\MyPath\")+".dbf" ENDFOR ENDIF ENDFOR ENDFOR>That's what I'm trying to do, but I can't seem to find the collection of subreports. I can open a specific subreport once I have a name, but I can't see how to get them through the collection.