Microsoft Access Sucks - The Myth

access logoI've been developing database applications for years, and have worked with both large and small systems. A large percentage of my daily job revolves around working with the data from a fairly large custom Oracle database that drives all of the manufacturing and accounting processes for a mid-size US-based manufacturer. I also oversee the development and maintenance of a MySQL database that drives the corporate website for that same company. Previous to that I worked for several years as a consultant and software developer specializing in Access applications. I've noticed along the way that there are a lot of database administrators and developers that have a real bias against Access, and thought I would spend a minute or two chiming in with my own two cents.

This website is not about developing large scale production database applications. It's about the average user of the average desktop computer (see the About page here), where Microsoft Access is a very relevant product.

So, with that in mind, let's take a look and try to figure out why the users and developers of the database heavyweights don't like Access:

  • Access is not a large scale database system - If you're trying to build a database that's going to be used by more that 20 or so people at the same time, or needs to be accessed by people if separate locations, don't use Access. That's not what it was created for, and you'll be fighting an uphill battle the whole way. One of the biggest reasons Access gets a bad rap is that people try to use it to create systems for which it wasn't designed.
  • It's free - Well, almost free. It comes with Microsoft Office Pro, at least for the last few versions. How can it possibly be any good if a user can create a database, or connect to it without having to pay? The opensource movement is starting to remove some of this stigma, but there is still a feeling with many database developers that an expensive database system keeps out the un-desirables.
  • It's [relatively] easy to use - This can't be good. If it's easy to figure out everybody will start understanding that a database isn't some kind of voodoo black magic, and that it can actually be kind of easy and maybe ever fun to use. OK, I know that sounds a little cynical, but unfortunately there are some, maybe more than some, database developers that very much enjoy the mystique that comes with doing something that is perceived to be very difficult. Anything that lessens that mystique can be threatening, and undermining the source is one way to defend against the threat.
  • It's Microsoft - Oh, how people love to bash Microsoft. Maybe they deserve some of it, but it's really rampant, and I think it clouds the judgement of otherwise rational people. Yes, maybe they've engaged in some overly aggressive business practices, and maybe they release product before they should, which is what makes them just like 95% of every other successful business these day.
  • Databases designed with it are frequently less that perfectly designed - It's a database that can be used by the average users, so it's common to see some design mistakes when you look at one. To be fair, I've seen large scale production systems that had table structures that were a real mess, to the point of being almost completely non-functional. It may be more prevalent in Access, but bad design is an option that's available in any database system.

The long and the short of it is that Access is like any other software tool, it fills a niche and needs to be used the way it was designed. Access was meant to be used for, and is really, really good at, a couple of things:

  1. Quickly creating very efficient small databases for individuals or small offices.
  2. Being easy to use, it was designed so that the average computer user could do something useful with it.
  3. Sharing information, it plays very nice with a lot of other software programs.

Keep it limited to what it was meant to do, and it's actually a really excellent tool. Don't be afraid to use it.

Bytes: