The other day, I was asked a question I get asked on a lot of contacts: “How’s your Microsoft Access?” Then, with excitement, “we figure that you can knock up an Access application in just a few days compared with the weeks it will take for the other system.”
Another question I get asked on contracts is “We have an Access application that is in terrible shape. Can you help us create a SQL Server application based on it?”
I’ve moved away from Access for so many years now (“but they keep pulling me back in!”), but the VBA is still in my head. I may not be able to tell you the difference between Access 2002 and Access 2003, but I can code it just fine.
I’ve seen a lot of very big projects with Access at their core and I’ve seen a lot of very small projects where a developer insists on a full transactional Oracle solution. Access has its place, but there is a fine line to be observed.
The problem with Access is its apparent simplicity. When a project manager or a business user can slap together some forms and call it an application, they assume they can hand it to a developer and he will do the same thing as they did, but faster. A developer, however, will think about transactions, when the data is written to tables, how to control auditing and authentication, etc. In the end, you get an elaborate Access database application, but it may have been quicker to write it in C# or some other managed code.
The simplicity is also a problem because anyone can build an Access form. On 4 different contracts, I’ve been faced with a situation where a business user (and closet developer) “built” an access database which is now used by an entire company and can no longer take the strain. Since the database is usually not as normalised as it should be, it needs to be re-written on a more robust platform. I’ve done this a lot. And it always takes longer than it did to build the original Access database.
Access is a good tool. I know developers who would never ever touch it?even though haven’t explored everything it can do. Ask them to produce a one-user application, they’ll start designing SQL Server schemas and n-tier plans. I also know a developer who knows Access and VBA backwards and forwards but will not admit it when he’s in a contract.
As a report-writer and very generic application creator, Access is a very useful tool. For a seasoned developer, it’s definitely a step down.
We’ll see if I need to create another one this week.