Sunday, October 23, 2011

How Much Does an Access Database Cost?

Lately I've been pondering the implications of some of the questions we get at Utter Access. It used to be that I worried more about giving the questioner an answer appropriate to their situation, but lately, I’ve also been asking myself, "How much will that technique cost?"

Here's an example.

"I need to have users enter a value into a text box on a form. If that value is not found in the table, then I want to open a form to add a new record with that value. If that value is found, then I want to open the form with the details for that record for editing."

When I see that request, certain things come to mind.

That’s a job for a combo box, the kind created by the combo box wizard. Searching/filtering on primary key values from a list is a common task in a database; MS implemented a specific combo box wizard just to do it.

“Filtering” combo boxes aren't unique to Access. A lot of smart people have invested a lot of time and energy in refining this technique in many environments. It works well and it's well understood. Why wouldn't you think of it as the first choice?

We also assume the searching combo box will have "standard" properties and events. For example, "Limit to List" will be set to “Yes” because we want to guide users to select from the existing values. The Auto Expand property will be set to “Yes” because we want to give users a visual indication about potentially matching records as they type.

Recently, when the poster says, "I want to use a text box for this search, not a combo box," my reaction is "Really? Why do you want to invest in the additional time it will take to create a custom filter/search? What's wrong with the native Access combo box?" In other words, I've been thinking a lot more about the cost of such design decisions. Our business clients are asking more pointed questions about costs, so it's on my mind already. Many times clients are passing on "nice to have" features that that they might have included in the past.

So, when someone wants to implement a more costly design, I have started to ask "Why?" It’s going to cost more, so why do it?” It’s a question we ought to be more willing to ask, I think.