[AccessD] enumerating all properties in all forms

Charlotte Foust cfoust at infostatsystems.com
Thu Feb 17 17:26:50 CST 2005


I didn't use DAO, Susan.  Don't be misled by this:   Set dbs =
CurrentProject.  The object dbs is declared as an object, not as a
database.  My code will work in an all ADO database, 2000 and later.  

Your real problem is that most of the form's built-in properties are
only accessible if it is loaded.  If you want to enum all the
properties, I'm afraid you may have to load any form that isn't already
loaded and then close it again.

Charlotte Foust


-----Original Message-----
From: Susan Harkins [mailto:ssharkins at bellsouth.net] 
Sent: Thursday, February 17, 2005 2:55 PM
To: 'Access Developers discussion and problem solving'
Subject: RE: [AccessD] enumerating all properties in all forms


An interesting solution -- interesting that both you and Charlotte used
DAO.
:)  

Susan H. 

Susan,

Probably slower, but could you do something like this:

    Dim db As DAO.Database, doc As Document, frm As Form, prp As
Property
    Set db = CurrentDb
    For Each doc In db.Containers!Forms.Documents
        Debug.Print doc.Name
        DoCmd.OpenForm doc.Name, acNormal, , , , acHidden
        Set frm = Forms(doc.Name)
        For Each prp In frm.Properties
             Debug.Print prp.Name, prp.Value
        Next
        DoCmd.Close acForm, doc.Name, acSaveNo
    Next
    Set db = Nothing

Hope this helps,

Don

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins
Sent: Thursday, February 17, 2005 12:12 PM
To: 'Access Developers discussion and problem solving'
Subject: RE: [AccessD] enumerating all properties in all forms


Yeah, the Help doesn't really give too much information, but my guess is
that the AccessObjectProperties aren't the same as the form properties. 

I need to get at the form's properties for ALL the forms, not just the
open ones, so I need to use the AccessObject. 

Susan H. 

Hi Susan

Perhaps simply no AccessObjectProperty is present ..?

/gustav

>>> ssharkins at bellsouth.net 17-02-2005 20:43:45 >>>
The following procedure seems to totally skip the second For Each loop.
No error, it just skips it, as if there are no properties in the
Properties collection, which may be the case. I realize we're dealing
with different collections and I may not be referencing things right.
Any help?
 
Thanks!
Susan H. 
 
 
Public Function EnumAllFormProp()
  'Print the name and setting for
  'each property in every form.
  Dim obj As Access.AccessObject
  Dim prp As Access.AccessObjectProperty
  For Each obj In CurrentProject.AllForms
    Debug.Print obj.Name
    For Each prp In obj.Properties
      Debug.Print prp.Name
      Debug.Print prp.Value
    Next
  Next
End Function

--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com

--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com


-- 
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com

-- 
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com



More information about the AccessD mailing list