Arthur Fuller
artful at rogers.com
Sun Mar 9 13:49:00 CST 2003
I have a lot of other things on my mind today, and clearly I am now dazed
and confused, and no doubt overlooking something very obvious. Here is the
current code:
<code>
Public Sub ListDataSources()
On Error Resume Next
Dim strOutFile As String
Dim fs As Object
Dim a As Object
Dim frm As Form
Dim ctl As Control
Dim objFrm As Object
strOutFile = "c:\RecordSources.txt"
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile(strOutFile, True)
Application.Echo False
For Each objFrm In CurrentProject.AllForms
DoCmd.OpenForm objFrm.name, acDesign
Set frm = Forms(objFrm.name)
If frm.RecordSource <> "" Then
Debug.Print objFrm.name & ": " & frm.RecordSource
a.writeline "Form: " & objFrm.name
a.writeline "==========================================="
a.writeline "RecordSource:"
a.writeline frm.RecordSource
a.writeline
a.writeline "Data Driven Controls"
a.writeline "--------------------"
For Each ctl In frm.Controls
Select Case ctl.Properties("ControlType")
'.ControlType
Case acComboBox '111
Debug.Print ctl.name & ": Combo Box"
Debug.Print ctl.RowSource
a.writeline "Control: " & ctl.name
a.writeline "RowSource:"
a.writeline ctl.RowSource
Case acListBox '110
Debug.Print ctl.name & ": List Box"
Debug.Print ctl.RowSource
a.writeline "Control: " & ctl.name
a.writeline "RowSource:"
a.writeline ctl.RowSource
Case Else
'do nothing
'Debug.Print "Ignoring " & ctl.name
End Select
a.writeline
Next ctl
End If
Set frm = Nothing
DoCmd.Close acForm, objFrm.name, acSaveNo
Next
a.Close
Application.Echo True
Set frm = Nothing
Set fs = Nothing
Set a = Nothing
Set ctl = Nothing
End Sub
</code>
The odd thing is that the debug window performs exactly as expected, but the
text file contains only this:
Form: Switchboard
===========================================
RecordSource:
Select * From dbo.Switchboard_Items_2002Dec02
Data Driven Controls
--------------------
I can't see why the debug.print statements dump what I want but the
a.writeline statement don't.
Arthur
-----Original Message-----
From: accessd-admin at databaseadvisors.com
[mailto:accessd-admin at databaseadvisors.com] On Behalf Of Shamil
Salakhetdinov
Sent: March 9, 2003 1:07 PM
To: accessd at databaseadvisors.com
Subject: Re: [AccessD] Iterating Controls
> But I'm not sure what.
Arthur,
You open a form but don't assign an object variable referring to this open
form instance - something like that should work:
dim efrm as AccessObject
dim frm as Access.Form
...
for each efrm in CurrentProject.AllForms
...
DoCmd.OpenForm efrm.name, acDesign
set frm=Forms(efrm.name)
...
next efrm
HTH,
Shamil
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://databaseadvisors.com/pipermail/accessd/attachments/20030309/bf3d08e2/attachment-0001.html>