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 >