Max Wanadoo
max.wanadoo at gmail.com
Thu Feb 26 09:19:45 CST 2009
Ummm, don't pat yourself on the back tooooo soooon JC. I tried all of the
containers and documents and NOWHERE can I find where I can ADD a
User-Defined Property to the Forms Collections. Post some code that does
that and then I will personally give you a pat on the back...
As I originally state, I don't think Access allows this other than for those
declared items in the objects collection, ie Datbases, Tables, Indexes etc.
Not Forms. I would love to be wrong, but given that I seldom am, I won't
hold my breath too long.
Max
Laugh more than cry. Smile more than frown. Be generous in spirit. And
always stand your round in the pub!
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby
Sent: 26 February 2009 12:57
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] Using Lateral Thinking To solve problems - This time
it is Form Properties
All you have to do is ask.
BTW, I discovered that getting a pointer to currentdb is expensive. If you
are going to do a lot of
dao manipulation of the dao.database object you should get a single pointer
and then use that pointer:
function dbDao() as dao.database
static db as dao.database
if db is nothing then
set db = currentdb
endif
set dbdao - db
end function
The difference when repeatedly calling a function that needs the currentdb
pointer can be quite
dramatic.
John W. Colby
www.ColbyConsulting.com
William Hindman wrote:
> ...we need to get you in RANT mode a lot MORE often ...when you're through
> ranting, you make amends with gems like this :)
>
> William
>
> --------------------------------------------------
> From: "jwcolby" <jwcolby at colbyconsulting.com>
> Sent: Thursday, February 26, 2009 1:13 AM
> To: "Access Developers discussion and problem solving"
> <accessd at databaseadvisors.com>
> Subject: Re: [AccessD] Using Lateral Thinking To solve problems - This
time
> it is Form Properties
>
>> Max,
>>
>>> Couldn't find any way to manipulate custom properties in Forms. Do you
>>> know a way?
>> Don't say I never did nothing for ya. Happy lateral thinking.
>>
>> There is this thing in Access called the "documents" collection.
>> Documents are something that the
>> average joe knows nothing about and so are "well hidden" as I mentioned
in
>> my previous email. I
>> mean they are right there, anyone can find them, anyone can iterate the
>> documents collections, the
>> properties of a document etc but you have to dig down to that level to
>> actually see what is in the
>> properties collection.
>>
>> currentdb.Containers(strContainer).Documents(strDocName)
>>
>> AFAICT .Containers represents the tabs in an A2003 database. strContainer
>> will be the name of some
>> tab - Forms, Reports, Queries, Tables, etc. .Documents() contains all of
>> the forms, reports etc.
>> strDocName would be the name of a specific form, query etc.
>>
>> AFAICT documents are probably the textual representation of an object, IE
>> what you would get if you
>> exported the object to a text file. As such it doesn't have to be
>> "opened" in design view to
>> manipulate, nor "Saved" afterwards.
>>
>> I haven't done extensive testing to see how many properties you can
>> create. I suspect a BUNCH
>> however, since these are collections like any other.
>>
>> To manipulate it:
>>
>>
'---------------------------------------------------------------------------
------------
>> ' Procedure : PropertyAdd
>> ' Author : jwcolby
>> ' Date : 2/26/2009
>> ' Purpose :
>> '
>> 'String container can be "Forms", "Reports" etc
>> 'strDocName can be the name of any "document" in that container.
>> '
>>
'---------------------------------------------------------------------------
------------
>> '
>> Function PropertyAdd(strContainer As String, strDocName As String, _
>> strPrpName As String, PrpType As DataTypeEnum, varVal
>> As Variant)
>> Dim db As DAO.Database
>> Dim prpNew As Property
>> Dim doc As Document
>> On Error GoTo Err_PropertyAdd
>>
>> Set db = CurrentDb
>> Set doc = db.Containers(strContainer).Documents(strDocName)
>> With doc
>> Set prpNew = .CreateProperty(strPrpName, PrpType, varVal)
>> .Properties.Append prpNew
>> .Properties.Refresh
>> End With
>> Debug.Print
>> db.Containers(strContainer).Documents(strDocName).Properties(strPrpName)
>>
>> Exit_PropertyAdd:
>> On Error Resume Next
>> Exit Function
>> Err_PropertyAdd:
>> Select Case Err
>> Case 0 '.insert Errors you wish to ignore here
>> Resume Next
>> Case Else '.All other errors will trap
>> Beep
>> MsgBox Err.Description
>> Resume Exit_PropertyAdd
>> End Select
>> Resume 0 '.FOR TROUBLESHOOTING
>> End Function
>>
>>
'---------------------------------------------------------------------------
------------
>> ' Procedure : PrpGet
>> ' Author : jwcolby
>> ' Date : 2/26/2009
>> ' Purpose :
>>
'---------------------------------------------------------------------------
------------
>> '
>> Function PrpGet(strContainer As String, strDocName As String, strPrpName
>> As String) As Variant
>> On Error GoTo Err_PrpGet
>>
>> PrpGet =
>>
CurrentDb.Containers(strContainer).Documents(strDocName).Properties(strPrpNa
me)
>>
>> Exit_PrpGet:
>> On Error Resume Next
>> Exit Function
>> Err_PrpGet:
>> Select Case Err
>> Case 0 '.insert Errors you wish to ignore here
>> Resume Next
>> Case Else '.All other errors will trap
>> Beep
>> MsgBox Err.Description
>> Resume Exit_PrpGet
>> End Select
>> Resume 0 '.FOR TROUBLESHOOTING
>> End Function
>>
>> In the debug window:
>>
>>
>> AddProperty "forms","frmDemoCtls","JWCs test property",dbText,"jwc"
>>
>> ?PrpGet("forms","frmDemoCtls","jwcs test property")
>> jwc
>>
>>
>> Enjoy!
>>
>> John W. Colby
>> www.ColbyConsulting.com
>>
>>
>> Max Wanadoo wrote:
>>> Ha! John, Been there. Looked at them yesterday - but I love the fact
>>> that
>>> you are now also thinking Laterally!
>>>
>>> Couldn't find any way to manipulate custom properties in Forms. Do you
>>> know
>>> a way?
>>>
>>> I could only find custom properties on DB, Tables, Indexes, etc but not
>>> forms.
>>>
>>> Max
>>> Laugh more than cry. Smile more than frown. Be generous in spirit.
>>> And
>>> always stand your round in the pub!
>> --
>> 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