Return to ProgrammingMSAccess.com home page
Reviewed by Bob Brennan
The EZ Access Developer Tools Suite is eight programs, or libraries, that can be an invaluable addition to just about any developer’s toolbox. The objects range from simple buttons without code, to complex interfaces that can provide pre-developed and well written components for your applications that can save time and provide expert help for some of the more time consuming or complex needs presented by your clientele or projects. There is naturally some tweaking required to get the various components to work in your application so the user does need some familiarity with VBA, but they do not need to be an expert developer. Each individual product will be dealt with but there are some components which are passed over quickly to focus on what I believe to be the more important parts.
The EZ Application Manager library offers several interfaces for building and running applications and a number of objects that can enhance an application’s appearance. The switchboards and preferences manager are the most significant items in this library. There are about boxes, splash screens (including some nicely animated ones), tip of the day form, a license and registration form, a legal agreement form, and a “first screen” form which can be used for introductory information or a tutorial. The preferences manager and switchboards, though, seem to be most likely to be a benefit due to the applicability in a variety of applications and for the sake of their complexity, more bang for the buck.
A preferences management form breaks down the preferences into system, default, or user-specific. The system preferences are for all users and may include the program name, license info, or security info. Default and user preferences are the preferences which vary from user to user. User preferences differ only in that they apply to a particular user. You control which type of preferences the form displays upon opening by passing a single argument when calling the form. The documentation clearly lists the objects required to use this form so you can easily import the needed objects into your application. In the case of this preferences manager, there is one table, three forms, and one module. You will need to add your own modifications to smoothly integrate it into your application but the documentation is clear, making your modifications as painless as possible.
When opened without the open arg of a user name (or “System” or “Default”) the form uses an input box to get the username.

Once logged in the system preferences form opens.

The tabs represent the types of preferences. The top panel are boolean (yes/no) preferences. The bottom panel are preferences with a string value. The preferences table is shown for comparison with the data shown above for the user, “System”.

The preferences manager can be integrated with a number of the other products in the suite which use the preferences information.
There are several different switchboard forms included. The switchboards’ weakness, in my opinion, is the dependence upon macros. When it comes to troubleshooting, macros offer no help and no way to debug. I know that this is a preference shared by many developers. However sometimes a design may limit our options and this is the reason given by the documentation for this dependence upon macros. The table driven nature of these switchboards do make customization and modification easier and more convenient than a hard-coded structure so the weakness of macros is an acceptable trade-off.
Deluxe switchboard – For each of the nine available vertical tabs on the side tab control there are nine horizontal tabs available on the top tab control. So it can display 81 different tab pages.

“Look” switchboard – so named for its similar appearance to Outlook
It comes with twelve options on the vertical selection bar, but since it is a subform it it can easily be expanded beyond the original twelve options, with each having eight tabs available on the tab control. The total menu options this form could offer are significantly greater than in the Deluxe switchboard.
Tree switchboard uses a tree view control. Each selection on the control opens a subform in the right panel of the form. Tree view controls have the advantage of presenting the options in a format that is very familiar and logical to most users given the similarity to Windows Explorer. Its real strength, however, is the easy addition of almost limitless numbers of selection options.

The EZ Controls library is an extensive collection of buttons, meters, clock controls, slider controls to set a value graphically, spin controls (similar to the Windows time control on the Date and Time properties) and many other functions. There are text effect controls for blinking text or borders, growing text, text that scrolls or fades. There is a rotating image control and tab controls that look like a notebook binder or rolodex. Some of the controls seem to be more novelty than useful, but I am sure there is a place where these would be useful. Others, such as slider controls or progress meters can be useful and offer a more professional appearance to an application.

In the applications I work with, there are a number of textboxes for entering percentages. While a validation message to enter a value between 0 and 1 may clarify the expected value for a user, a slider control makes it perfectly clear and simplifies the entry, avoiding any question in the first place. A locked textbox set only by the slider cannot accept invalid values.
There are times that you may want an unusual button or calendar or clock, and they are available here. However, controls that don’t behave like standard controls that a user is familiar with may increase support calls. The drag and drop list boxes example below is a good concept but is not true drag and drop. You must click once to select, then click and drag. Because it is non-standard behavior it is likely to cause confusion and arrow buttons to move a selection from one box to another might better serve the same purpose.

EZ Controls includes Calendar and Time selection forms that are easy to use and easy to modify to suit your needs. These are more flexible date and time capture forms than the MS Calendar Control as the formatting and behavior is all done in Access and therefore open to the developer’s own modifcations. The time form is opened as a dialog by the date form but can be modified to use by itself.

I like the Windows type spin controls for setting time but this Time form does the job well and easily and after using it, I have come to prefer it over the spin controls. If you prefer spin controls for selecting a time, there are controls in this library which can be easily adapted to that purpose. If you just need a Calendar control you can change the format of the date/time textbox on this Calendar control to display date only. The advantage of this control over the Calendar OCX Control from Microsoft is that it is all in Access; so you can change the look or functionality.
There are also a couple of address book controls included.

While the one on the left above is clearly for addresses, the one on the right could be modified easily as a navigation control for any alphabetically categorized lists.
This library’s objects are easy to implement since the complexity is minimal for most of them.
Included in EZ Extensions are several forms and supporting tables for an Event Scheduling system that could be quite useful. A scheduler wizard collects the information regarding the event that you want to run. It is pictured below with the default event types from the sample database.

An event form, pictured below shows the information for each event for review and editing.

The event processor form shows and processes the pending events.

This event processing functionality could be quite useful as part of an administrative section in an application. I did notice that it did not handle bad syntax too well (Of course, I meant to do that for testing purposes). It got into a bit of a loop telling me there was bad syntax and repeatedly retrying. I had not familiarized myself with it yet and the problem was easily fixed by following directions, however, there may be a small bug there in a poorly handled error situation that should be tested for. Over all it works well. As with most of the components in all these libraries, some modifications are to be expected to fit it into an application and it is most likely that the condition I created in making the error could easily be tested for without robbing this component of its usefulness.
Also in the Extensions library is a geographical drilldown application. I looked at it only briefly since I do not have a use for it in my current work. It did exactly what was advertised and in the demo mdb gave sales totals by state. I could see this being a helpful addition to an application doing geographically based statistics work.
This collection offers a message box which permits formatting and customization, unlike the Access message box. It also includes the pop-up calendars that are included in the EZ Controls library. There are some simple demos of how these calendars and time forms can be employed which could be useful in making the adaptation to specific applications a little quicker. There is also a calendar calculator that is an easy tool for determining length of time between two selected dates.
The EZ File Manager comes with several components for working with files. The file utilities form has several functions for the maintenance of your mdb files.

Backup makes a copy of your data mdb file, your application’s back end. The repair and compact functions are self-explanatory. Given these functions’ usefulness in preventing or fixing corrupted files, it can be advantageous to use an interface like this to put this capability into a user’s hands.
The upgrade function copies all the data from tables in a selected source file into corresponding tables in a destination file. If you have updated your table structure, added fields or tables, and you do not use any mechanism for adding new tables or fields “on the fly” this provides a good means for easily deploying upgraded databases.
The compile function compiles a database file. I work in a setting where our customers use our application in an Access runtime environment so the functionality would not be available to us. I can see this being very useful in less restricted settings.
Also included in EZ File is an attachment manager which will create or refresh attachments to a back end database or to multiple back ends.
There is an archive manager for archiving old records to an archive database:

There is a patch component that can determine which objects are changed by comparing two database files and create a new file with the changed objects.

The new database can then be sent off to the users who can use the patch installer to add the newly modified objects to their copies of the database.

This patch utility can make modifications much easier to deploy particularly if you are dealing with fairly large application databases and need to get patches out to users quickly.
The EZ Report Manager makes managing and printing reports far more automated for users. It does require some setup by the developer before deploying, however. Your queries will need a couple of parameters added to enable them to work with the report manager, and reports will need a header added or modified according to the report manager’s requirements and a small addition to the Report_Open event in the report’s code is needed. The modifications are minor and clearly explained in the documentation.
The reports are then added to the report list, shown below. Here each report is briefly described and the criteria needed for each report is defined. Access to this list can be restricted so users with more curiosity than expertise do not inadvertently do any creative modification.

When a user runs the report selection form they will be able to select a report and define the criteria according to how the report was set up in the report list.

From there it can be added to the print queue which manages the printing of many reports including how many copies of each to print. Details about each report in the queue are displayed and the print job can be canceled, for instance if criteria needs to be modified.
There are three different types of searches that EZ Search Manager provides: Smart, Advanced, and Flex searches.
The Smart Search can be called from any form with options specific to each form. You define the options in a configuration table, ezs_SmartSearchDefinitionII. It is shown in design view for the sake of the field descriptions.

For this demo customer form, the Smart Search form opens with 7 types of searches, each one populates the combo box on the bottom half of the form. When the selection is made the user is returned to the form at the record they selected.

The Advanced search form searches against any table or query. Which table or query is determined when it opens based upon which form called it or can be set manually at the bottom of the form (“Look in” is disabled in this screen shot since it was called from a form).

The criteria window is populated by selecting the field, condition, and value from the combo boxes and selecting Add to List. This Advanced Search form can also be called from the Smart Search form.
The Flex search will display up to five columns form the data source it is searching against. It can search against just one of the columns or all of the columns shown.

Search functionality can add a lot of value to an application. EZ Search Manager provides some impressive options which are easily implemented.
Anyone who has had to modify user level security in a complex Access application will truly appreciate this library. Security can be confusing for even accomplished developers. The EZ Security Manager gives a user control over security of the application. It can be used in conjuction with Access security or by itself. Presumably either the developer or an administrator will have access to the forms to turn security on or off and set the details. That can be done programmatically or with the form shown below which is provided for that purpose.

The buttons on this form are examples of one of the styles of buttons in the EZ Controls collection. The security system button turns security on or off. The security warnings button enables warning messages when a user attempts to access a form or report that they do not have permission for, and then quits the application. Terminating the application seems to be overkill since it is more likely done innocently, but that will need to be determined by the developer in each setting. In a setting in which security is paramount, seemingly extreme measures may be necessary.
Most users will only ever need to see the logon form. The logon form in its default state is pictured at the left below. On the right is one simple change added. Like most of the components in all of the EZ Developer Suite apps some simple configuration is needed. Also, as with all the apps there is a fair amount of interaction. The program name is pulled from the preferences table used and populated with the Preferences Manager. If that is not being used, the label can be changed in the code behind the form or on the form itself in design mode.

The logon form can be used in conjunction with Access logons or with Windows logons so a user is not logging in multiple times.
The Security Manager form should look somewhat familiar to anyone who has worked with Access security. The appearance is similar to the User and Group Accounts form and the User and Group Permissions form in Access. The settings are all stored in the included tables and can import users and groups from Access security.

As is evident on the group permissions tab above, permissions can be set down to the control level, a degree of granularity which is not available in Access security. Also, on the Groups tab there are several options for printing reports on your security configuration.
Auditing is another feature of the EZ Security Manager that can be great help in troubleshooting or tracking the use of an application. You can use the auditing feature to record any event in Access. Security manager provides the audit log table and a function for writing to it. The developer will need to add the call to that function in every object that they want to record the events for. In the applications I work with we have implemented a similar functionality and it has been indispensable in troubleshooting.
This library offers a number of support and help forms and reports. There are a couple of help systems, an error handler for reporting useful information when the application encounters an error, a demo that can be run to explain or introduce your application, reports that print a help manual, etc.
The form below is used to begin the demo, open an order form or quit the application. It also shows when the demo application will expire and controls that expiration.

The demo that is launched from here is a series of explanations of your product which can give an introduction, a quick start guide, or whatever else you feel is most important to relay to the user.
There is a problem report form that a user can complete and then print. If you can actually prevent your users from calling for every perceived flaw and can choose to receive printed problem reports then I suspect you’ve ripped out your phone. Here is a premade form for printed problem reports. Perhaps if users became accustomed to such a form they may develop a habit of writing down an error message before clicking okay and then calling for support (and of course, pigs fly).

The help system pictured below is a quick and easy way to deliver a help system with your application without requiring one of the larger help authoring suites which can be a bit more challenging to create and maintain.

Good support features can cut down on support calls and user complaints. There are some worthy offerings here.
There is a lot here. I tried to cover the major parts of each of the programs in this suite in enough detail for Access developers to be able to make an informed decision when considering adding this product to their collection of tools. A lot of time can be saved by not trying to build what is already available and accessible. Here is a collection of well designed controls that can be easily integrated into any projects. I believe these would be a useful addition to anyone’s collection of object and code libraries.
I have a few suggestions to offer on all these products:
Overall, other than a few minor complaints, I find this to be a helpful suite of programs and would recommend it to anyone who develops Access applications.
Reviewer Biography
Bob Brennan is an Access developer with Infostat
Systems, Inc. in
Return to ProgrammingMSAccess.com home page