Product Review: Object Property Manager
May 21, 2004
I have a large queue of products to review, but I bumped this Veraccess tool to the head of the list for a couple of reasons. First, because I love what Object Property Manager does. This Microsoft Access development Add-In lets you set form and report properties for multiple objects all at once. It could literally save you hours of development time by allowing you to set and save common properties without having to open, modify and save all your form and report objects individually.
My second reason for wanting to feature this product is that it is the most reasonably priced utility for Access I have ever reviewed. In fact, for a limited time, you can download a registered copy for only $9.95 but you had better hurry, because after July 30th, 2004, the price soars to the whapping sum of 15.95.
Forgive me if it sounds like I am making fun of the price. I assure you, I am not. I think it is great when an Access developer finds a way to automate and/or expedite tedious tasks and even better when he shares those tools with others. Even at the $15.95 price, it represents only a fraction of a single hour of billing time for most developers. The only lower priced utilities on the market are free, but they do not do what Object Property Manager does. Which brings us to the point of this review...
What does Object Property Manager do?
Before we get started, it is worth mentioning that the download and install process was simple and executed flawlessly. As mentioned, it works as a Microsoft Access Add-In, so once the installation is complete you simply open any Access database and select Object Property Manager from the Add-Ins menu. There is a separate version for Access 97, 2000 and 2002. As yet, I didn't see a 2003 version at the Veraccess web site.
In order to do its thing, Object Property Manager needs to close and save any open forms or reports when it opens, but you are prompted to that effect before it goes ahead and commits some changes you hadn't wanted to change. This makes sense, of course, since behind the scenes, this utility will be opening up your database objects, effecting the changes and then saving them. It needs to start from a "clean" state with respect to the form and report objects.
You are greeted with a dialog window like the one below. The process is simple. Select the form or report objects, whose properties you want to modify, from the list box and set any and all desired properties to the new values. In my example, I've selected all my subforms and I want to set some properties, such as Dividing Lines (I hate it that dividing lines are ON by default), border style (sub forms do not need borders), Control Box, Max Min Buttons, Close Button and several others that could be turned OFF for sub forms. Once I am satisfied with my choices, I click the Apply button and my properties are set. It's that simple.
As you can see from the interface snapshot, you can select all or none of the objects with the click of a button. The Reset All button resets all property selections to "(Current Value)" The utility comes with a comprehensive help file, which includes a list of properties available for manipulation, as shown below:
One function on this form that is not entirely intuitive by its label is the Open In Mode combo box. After selecting one or more objects from the list, you may open them in the desired mode (Normal, Design, Print Preview, etc.) by selecting a mode from the drop down list. While this closes the Object Property Manager utility, it is a convenient way to check out your changes.
How it works and extending the paradigm?
While I cannot claim to be privy to the actual code behind this Add-In, I have written code to do similar things in my day. The idea is simple and leverages the object oriented nature of Microsoft Access database objects. For example, you can loop through the form documents collection to get a list of available forms, open one, set a form object to this open form and begin reading and/or manipulating the properties.
Because the Object Property Manager only costs $15.95, it is not worth my time to reproduce the code to do this. I guess that is what makes the tool worthwhile. However, I have included some code below that shows how one might loop through all the controls on a form, setting a common property such as Control Tip Text.
I chose this particular example because the Status Bar text is automatically populated based on the field description you provide when designing a table, but the Control Tip Text (Tool Tip) is not. It is a trivial matter to extract the status bar text and plunk it into the tool tip and the process is similar, I imagine, to what is being done in the Object Property Manager. The difference, of course, is that for the time being the OPM does not allow you to edit the properties of controls. You may only modify the form or report which contains the controls. Accordingly, the following snippet might be useful to you.
Sub UpdateToolTips(strForm As String) '///////////////////////////////////////////////// ' Although the Form Wizard will automatically ' populate the Status Bar Text property with ' the field Description value of the TableDef, ' ControlTipText is not populated. ' ' This function cycles through all controls, ' copying the StatusBar Text to ControlTip text. '//////////////////////////////////////////////// ' ' Since not all controls possess these properties, ' turn error handling off ' On Error Resume Next Dim mydb As Database Dim frm As Form Dim ctl As Control Set mydb = CurrentDb DoCmd.OpenForm strForm, acDesign, , , , acHidden Set frm = Forms(strForm) With frm For Each ctl In frm.Controls ctl.ControlTipText = ctl.StatusBarText Next DoCmd.Close acForm, strForm, acSaveYes End With Set ctl = Nothing Set frm = Nothing Set mydb = Nothing End Sub
By supplying my own code, I was not trying to steal anyone's thunder. Object Project Manager, available at the Veraccess web site, is a great tool and if you do any amount of Access development, you will find an immediate use for it in your toolbox. If and when the functionality is expanded to include the manipulation of individual controls on forms and reports, then it will be a truly indispensable utility.