Arthur Fuller
artful at rogers.com
Mon Mar 10 15:14:00 CST 2003
For those interested, here's a sub that walks the forms and grabs the data-driven record sources and within each form, the data-driven row sources for combo boxes and list boxes. Watch for wrap. <code> '------------------------------------------------------------------------- ' Procedure : ListDataSources ' DateTime : 10/03/2003 ' Author : Arthur Fuller ' Purpose : List the data sources for all forms and data-driven controls '------------------------------------------------------------------------- Public Sub ListDataSources() Dim strOutFile As String Dim fs As Object Dim a As Object Dim frm As Form Dim ctl As Control Dim objFrm As Object Dim i As Integer strOutFile = "c:\RyersonDataSources.txt" Set fs = CreateObject("Scripting.FileSystemObject") Set a = fs.CreateTextFile(strOutFile, True) Application.Echo False For Each objFrm In CurrentProject.AllForms i = 0 DoCmd.OpenForm objFrm.name, acDesign Set frm = Forms(objFrm.name) a.WriteLine "=========================================================================" a.WriteLine "Form: " & objFrm.name a.WriteLine "=========================================================================" Debug.Print objFrm.name & ": " & frm.RecordSource If frm.RecordSource <> "" Then a.WriteLine "RecordSource:" a.WriteLine frm.RecordSource a.WriteLine Else a.WriteLine "Unbound form" End If For Each ctl In frm.Controls Select Case ctl.Properties("ControlType") '.ControlType Case acComboBox If ctl.Properties("RowSourceType") = "Table/View/StoredProc" Then i = 1 End If Case acListBox '110 If ctl.Properties("RowSourceType") = "Table/View/StoredProc" Then i = 1 End If Case Else 'do nothing 'Debug.Print "Ignoring " & ctl.name End Select Next ctl If i > 0 Then a.WriteLine "Data Driven Controls" a.WriteLine "--------------------" End If For Each ctl In frm.Controls Select Case ctl.Properties("ControlType") '.ControlType Case acComboBox '111 If ctl.Properties("RowSourceType") = "Table/View/StoredProc" Then Debug.Print ctl.name & ": Combo Box" Debug.Print ctl.RowSource a.WriteLine "Control: " & ctl.name a.WriteLine "RowSource:" a.WriteLine ctl.RowSource a.WriteLine End If Case acListBox '110 If ctl.Properties("RowSourceType") = "Table/View/StoredProc" Then Debug.Print ctl.name & ": List Box" Debug.Print ctl.RowSource a.WriteLine "Control: " & ctl.name a.WriteLine "RowSource:" a.WriteLine ctl.RowSource a.WriteLine End If Case Else 'do nothing 'Debug.Print "Ignoring " & ctl.name End Select Next ctl Set frm = Nothing DoCmd.Close acForm, objFrm.name, acSaveNo a.WriteLine Next objFrm a.Close Application.Echo True Set frm = Nothing Set fs = Nothing Set a = Nothing Set ctl = Nothing Set objFrm = Nothing End Sub </code>