Microsoft Access may not be the king of databases, but it does offer a number of advantages over solutions like SQL Server and Oracle in certain situations. Access guru Susan Harkins counts the ways.
Nothing starts a fire quicker than saying, "Hey, let's use Access. Yeah, Access can do it!" Oh my... just thinking about it makes me want to don a fire retardant pocket protector. Seriously, though: Access elicits real passion. Developers and IT folk either love it or hate it. There's no reason why you should use a tool you hate, but you should strive to use the tool that's best for the job.
The truly smart and effective IT professional knows that there are many tools. The key is to know which database engine is the best for the job at hand. Why throw massive resources at a simple need? In other words, you don't want to pay for a Rolls Royce engine if you're building a go-cart. Knowing when and when not to use Access will help your budget and make you look good, whether you're a freelance developer or you're managing IT resources.
Note: This information is also available as a PDF download.
#1: It's cheap
Access is a desktop database and its place in the hierarchy -- layered between Excel and SQL Server -- determines its price. Access costs the same as any other desktop application. Acquiring a copy of Access won't require a loan or a call to investors.
The large client-server databases, such as SQL Server and Oracle, require specific hardware and expensive licensing. After the project's up and running, a client-server database needs a dedicated administrator. Access requires none of that.
On the other hand, Access is a desktop application. That means that everyone who uses a customized database application needs Access installed on their local system. All those copies of Access can be expensive. One alternative is to invest the time and money it takes to turn your database into a runtime application. (Access 2007 doesn't support this option.)
#2: It's easy
Anybody with just a bit of time and reasonable intelligence can learn to use Access. It doesn't take weeks of classroom instruction and then months of mentored on-the-job training to acquire the skills necessary to create and administer a database. It's safe to say that most Access databases have one user and they live out their lives on one system. The user generally creates the database in his or her spare time. The casual user with no professional database or development skills can get data into an Access database and then manipulate that data without blowing up the building.
A good database grows and a bad one dies -- regardless of the data engine that's driving it or the skill set of the person who created it.
#3: Development costs less
Many developers make a good living creating custom database applications in Access. (Call me, let's talk.) However, in general, they charge less than SQL Server and Oracle developers. Moreover, the development costs are just the beginning if you go with SQL Server or some other client-server software (see #1). If you really want to use Access and you're smart, you'll see that an enthusiastic and eager employee gets the right training. Then, pass out all that money you save in employee bonuses.
On the other hand, it doesn't matter how much money you save initially, if you use the wrong database. Don't let money be your only consideration or you'll surely regret it. For instance, the security model is minimal (and doesn't exist at all in Access 2007). Recovery isn't as easy, either. Don't use Access for mission-critical applications unless you really know what you're doing -- and even then, it might be a good idea to keep your resume updated.
#4: Prototyping is a snap
Access is a great way to show fast results for the impatient client or boss. You can collect a little data and in just a few hours (or days) wow them with a few neat forms and reports -- I can hear them ooing and ahhing already. You don't have to use Access to build the production database, but you can ease client concerns by showing that you understand their needs. Access lets you get results fast and often with little to no code.
#5: It's easy to upsize once it outgrows Jet
People who control the purse strings aren't usually willing to dedicate resources to developing a noncritical database. Most of the time, you're on your own. However, that doesn't mean that a good design won't grow and evolve into a truly useful tool. If that happens, you can upsize an Access database to SQL Server. You don't have to start from scratch.
Still, Access is limited to 2GB. Even if the database's purpose isn't critical, the amount of data alone might force you into the arms of a more robust engine. Realistically, you probably won't run into that limitation too often. If you do, you can eliminate Jet from the picture and use an Access front end to link to SQL Server data.
#6: It's a one-time fling
Not every custom database has a long shelf life, but that's not because it's bad and dies an agonizing death. Sometimes its purpose is timed. For instance, generating, collecting, and analyzing questionnaire data can be a big job, even for Access, but a single questionnaire has a limited lifespan. If you're going to use a database once, or for only a short time, use Access if possible.
#7: It can provide a quick fix
The best solution for your needs might be a powerful client-server database such as SQL Server. However, while you're waiting -- and you will wait -- how's the work being done? You can use Access as a quick fix until the more robust version is ready. You'll have to compromise, because if you really need SQL Server, you're not going to get the same work done in Access. But you might get portions of the work done. Analyze the overall tasks and see what components you can automate in Access, at least for the time being.
#8: You want to change what?
Access is flexible, and that's one of its best attributes. Even if you can put a custom database together in a matter of weeks, needs are likely to change. Almost immediately, the user or client will think of something they want to add or change. If you designed the database well in the first place, Access will handle enhancements and changes without complaint.
#9: It talks to Office
Access is part of the Microsoft Office suite, so it plays well with the other applications. Users can quickly and easily export data from or import data into Excel or publish reports to Word. In addition, it shares a similar interface with other Office apps, which helps new users feel more at home and diminishes the learning curve.
#10: There's less code!
All things being equal, Access can get the job done with less code than SQL Server (or some other client-server database). In addition, VBA is an easy language to master.
#11: It offers connectability
Access offers an affordable solution for individual users and smaller teams. Despite protests from some member of the IT club, you can even use it across a network if you know what you're doing (file server solutions on a local network).
On the other hand, Access isn't optimized for the Web. Although a skillful developer can use Access on the Web, in general, it just isn't a good idea. Jet can't handle large numbers of simultaneous users, unless of course you really know what you're doing -- and that level of expertise is really closer to magic than development. It can be done, just not by many.
Susan Sales Harkins is an IT consultant, specializing in desktop solutions. Previously, she was editor in chief for The Cobb Group, the world's largest publisher of technical journals.