A.D.TEJPAL
adtp at airtelbroadband.in
Tue Jul 31 07:29:29 CDT 2007
Sander,
Sample subroutine P_ListAllControlsAllForms(), as given below, will populate table named T_AllControls with the names of all forms in the db as well as all controls thereon, along with particulars of ControlType. If any form happens to be blank (no controls), its name will appear against field FormName, leaving the ControlName & ControlType fields blank.
Before using this procedure, please make sure that table T_AllControls is available, with fields named FormName (text type), ControlName (text type) and ControlType (number type).
Note:
This procedure should preferably be run directly from VBA window. If you wish to run it from a test form, the code should be modified suitably so as to prevent opening of that test form. This is because, each form in AllForms collection gets opened turn by turn, in design view. If test form also gets opened in design view, further execution of code will get interrupted.
Best wishes,
A.D.Tejpal
---------------
Sample Subroutine
(For listing all forms & their controls)
====================================
Sub P_ListAllControlsAllForms()
Dim obj As AccessObject, ct As Control
Dim rst As DAO.Recordset
Dim FormName As String
' Clear existing contents of table T_AllControls
CurrentDb.Execute "DELETE FROM " & _
"T_AllControls;", dbFailOnError
Set rst = CurrentDb.OpenRecordset("T_AllControls")
For Each obj In CurrentProject.AllForms
FormName = obj.Name
DoCmd.OpenForm FormName, acDesign
If Forms(FormName).Controls.Count > 0 Then
For Each ct In Forms(FormName).Controls
rst.AddNew
With rst.Fields
!FormName = FormName
!ControlName = ct.Name
!ControlType = ct.ControlType
End With
rst.Update
Next
Else
rst.AddNew
rst.Fields("FormName") = FormName
rst.Update
End If
DoCmd.Close acForm, FormName, acSaveNo
Next
rst.Close
Set rst = Nothing
Set ct = Nothing
Set obj = Nothing
End Sub
====================================
----- Original Message -----
From: Sad Der
To: Acces User Group
Sent: Monday, July 30, 2007 19:25
Subject: [AccessD] Get all controls on all forms
Hi group,
Does anybody have piece of code that retrieves all
controles on all forms in a database?
I need to store these in a database.
Thnx!
Regards,
Sander