I have been writing Microsoft Access applications for many years, but most of that time I have felt I needed to be apologetic about using what many have considered to be a rather lame product. For a while I even started having my own doubts about Microsoft Access. When I spoke to other programmers, when they asked me what I did, I would tell them that I design and write custom applications for small companies or small work groups. In variably they ask what languages I use. I trot out VB, VB.NET, Javascript, PERL, SQL, and more meekly mention VBA, Access and the rest of the Office suite, as though it was an afterthought. Over the years a few people would go on to question why I didn’t use C++, Java, Oracle, SQL Server etc etc, and I politely smiled not really want to bring up what might be a more “religious” discussion than a technical/business one. These days however more people are realising that Access does fit into the enterprise IT arsenal of tools.

Before Access was around I used to program using other DOS based file databases such as DB3, Clipper, DataPerfect. To digress for a moment, I have a soft spot for DataPerfect, despite it being an unusual product which did not get much mainstream appeal. But it was good. Somewhere around 1994 in a Comdex Interop or something database shootout, DataPerfect very surprisingly managed to top the big guns of databases, as none of their contesting developers were able to perform all the assigned tasks in the allotted time; all failed except for the underdog DataPerfect team). DataPerfect however failed in the market for three main reasons, firstly it was a database product targeted at end users in a time when end-users generally did not understand databases. Secondly, it never made the transition to Windows (blame WordPerfect and Novell over this mishandling); Lastly, it does not have an embedded programming language. However despite these negatives I still use it today in some small web applications where I can overcome the lack of programming language for input by using PERL, while being able to utilise its incredible reporting and data manipulation power, and rock solid reliability for the backend of some web apps.

Anyway, I have digressed. I am not totally sure why Access gained so much disdain from so many developers. Perhaps it was because Access empowered end-users so that they were not at the mercy of the highly skilled developers, and perceived it as a threat. Related to this, perhaps the disdain was because of some of the truely awful applications that some end users created. Access was bundled into the Microsoft Office Professional product series from about 1993, and so people who were just getting comfortable using Windows, word processors and spreadsheets, jumped into Access without understanding the database design principles involved. It was only when the application was desperately in need of help that the IT department or professional programmers got involved, and perhaps that spawned the hatred, or at least enabled programmers to take softer more patronising option of blaming the users’ tools rather than the users’ abilities for such a poor application, which otherwise might have got them a corporate slap on the wrists.

The alternative to Access and other file databases are the server databases like Oracle, SQL Server, MySQL etc. They differ in that instead of the front end application managing the data files directly, a server database off-loads the database manipulation from the client program to a service running (usually) on a different server computer. The server computers are often quite expensive and scalable system capable of supporting hundreds of simultaneous users, without the possibility of users accidentally deleting files. The users do not get to see the files at all, just the service that access the files. Additionally with large databases where file databases could put a significant load on the network, making server databases generally more popular with the network guys. There are often full time database administrators making sure that the performance of these database server systems are optimally running, and managing the permissions of who is allowed to see or do something with the data, and managing backups etc. Overall, server databases are often considered to form part of a good corporate IT environment.

Good corporate IT departments do not give up control of their database servers readily. It is hard for average users to ask, can they have access to the enterprise database server so they can quickly set up a database to manage their stationery or field sales people, or specialised reports. Usually business cases need to be developed and approved, and of course we can’t have novice users tinkering around and perhaps crashing the company’s main data repository. Consequently small business units with small specialised needs often find that the IT Department represents a hindrance rather than a help.

So is this disdain for Access warranted? In the hands of a good developer who chooses to use Access because it is the right scale for the task required, the disdain is certainly not warranted. If the application will be built predominantly by the one designer and programmer then Access is very often the best fit, as generally solutions can be more quickly developed at far lower costs. It really is a matter of determining which tool is most appropriate for the job at hand. For small business and small business units, Access usually represents a quick (but not necessarily dirty) way of solving business problems, without the need to commit the resources that other systems require. If it can do the job well for a lower cost, then why not. Overworked Corporate IT departments have also started realising that Access can also be a great way to access enterprise data, and so fiddly requests for specialised reporting might be more easily handled by the end users, when given the proper and secure access to data – Access can be the perfect partner to the backend database servers.

These days, I can hold my head high and say to people, I solve small business problems most often using Microsoft Access and other Office programs.