William Hindman
wdhindman at dejpolsystems.com
Thu Feb 26 00:48:13 CST 2009
...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(strPrpName)
>
> 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
>