[AccessD] Using Lateral Thinking To solve problems - This timeit is Form Properties

Max Wanadoo max.wanadoo at gmail.com
Thu Feb 26 09:45:59 CST 2009


Ok, I will have this one then...

" I would love to be wrong, but given that I seldom am right, 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 William Hindman
Sent: 26 February 2009 15:29
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] Using Lateral Thinking To solve problems - This
timeit is Form Properties

" I would love to be wrong, but given that I seldom am, I won't
hold my breath too long." Max

...that's my line and you can't have it! :)

William

--------------------------------------------------
From: "Max Wanadoo" <max.wanadoo at gmail.com>
Sent: Thursday, February 26, 2009 10:19 AM
To: "'Access Developers discussion and problem solving'" 
<accessd at databaseadvisors.com>
Subject: Re: [AccessD] Using Lateral Thinking To solve problems - This 
timeit	is Form Properties

> 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
>
> -- 
> 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