This is part of the VB process that I created to create a list of all the tables used by my reports. The reports are listed in the "report table", and I use the memo field to store the name of all the tables used. After updating the tables, it is easy enough to update all the requested reports.
Public function tablesUsedByAReport(myReportName as string) as string Dim m_report As CRAXDRT.Report, _ m_crystal As CRAXDRT.Application, _ m_tablesUsedByAReport As String Dim m_table As CRAXDRT.DatabaseTable, _ m_section As CRAXDRT.section, _ m_objet As Object, _ m_subReport As CRAXDRT.SubreportObject Set m_crystal = New CRAXDRT.Application Set m_rapport = m_crystal.OpenReport(m_nomRapport, 1) 'table names in the report' For Each m_table In m_rapport.Database.tables m_tablesUsedByAReport = m_tablesUsedByAReport & m_table.location & ";" Next m_table 'table names in each of the subreports' For Each m_section In m_rapport.Sections For Each m_objet In m_section.ReportObjects If m_objet.Kind = crSubreportObject Then Set m_subReport = m_objet Set m_report = m_subReport.OpenSubreport For Each m_table In m_rapport.Database.tables m_tablesUsedByAReport = m_tablesUsedByAReport & m_table.location & ";" Next m_table End If Next m_objet Next m_section 'my tables list' tablesUsedByAReport = m_tablesUsedByAReport End function
source share