Access and VBA Woes
This 'article' is a request for hands to be raised on just how many people out in the world are actively using Microsoft Access, and also the Office VBA language, whether they want to use them or not. I'm not imagining this will be those on the I.T. side of 'The Wall', but rather those people on the business side who don't have access to 'normal' development software due to I.T. department policies, and have no choice but to use Access and Office to try and fulfill the requests from the business (that includes me).
I believe it has been readily apparent for years that Microsoft have not actively worked on Access or VBA for a long time, effectively keeping them on 'life support only' (fixing the worst, most widely damaging bugs, but not effectively touching anything else). I have read of people wondering if Microsoft are going to 'retire' Access, and when, and of replacing VBA in the rest of the Office suite with Javascript-based add-ins written using the likes of Visual Studio. I've also read of significant bugs in 64 bit VBA (some here on The Register), and I've come up against one of those myself.
It certainly looks like Microsoft are condemning Access to 'death by obsolescence' and VBA to a 'death of a thousand bugs', despite, as I understand it, claiming that they have no plans to stop including Access in Office. I'm not sure of their stance on VBA but the development of the add-in system suggests there is every wish on their part to eventually remove it from the Office programs.
Do we care? Does anyone care anymore about Access, and of using VBA? Both are unloved by us who use them.
With VBA that's apparent from programming language polls where VBA is consistently at the bottom of developers' choice of languages they use. That's hardly surprising, bearing in mind that the IDE for VBA is from the 90s. It's missing a whole host of features that help new developers learn to write better code, and help existing developers get their job done quickly and well. It also has no ability to use .Net to the best of my knowledge, and relies on API calls to achieve more complex operations for which the documentation specific to VBA is now almost, if not entirely, non-existent on Microsoft's websites. Add on the bugs in the 64 bit version that don't appear in the 32 bit version and that only adds to the misery of coding with it.
What of Access? It's known that the Jet database engine is buggy and missing capabilities from the standards for SQL. I'm sure some of those aren't readily able to be implemented in what is effectively a flat file system, but it can undoubtedly be better. In the Access interface itself, so many useful features are missing, particularly in the query designer, which I find to be one of the most useful things in Access. Where is the aliased table name in the field list box? Where is the interface for non-equal join types? Where are the text features for finding, replacing, etc in the SQL view?
The Access GUI interface itself is missing things. Continuous forms can't disable controls on a by row basis; the form system can't properly use disconnected ADO recordsets, and there's no way to use DAO recordsets disconnected; what about something simple, like being able to draw a circle on a form directly instead of having to import an image of a circle? So much missing.
But does anyone care?
I'm not an I.T. professional on the I.T. side of the 'The Wall'. My 'bread and butter' has been developing within the Office system, with Access predominantly. The businesses I've done development for (some big, some small) have needed my skills to help them understand their requirements for larger projects, and do smaller scale rollouts for smaller teams or even just for one person. If I lose Access due to it being removed from Office (which seems likely will happen some day no matter what Microsoft says), and VBA due to it being removed from Office as a non-standard language within Microsoft, then I certainly won't be able to do such things for such businesses again. My experience has been that the I.T. departments will not allow proper development software to be installed on business-side computers, and won't allow software developed by a 'business user' to be installed on such computers. How does 'discovery' and 'experimental' programming get done then? Most people in businesses do not want (and may not have the time) to sit down for months or years to try and work out specifications for a system which is going to cost millions and once rolled out doesn't do half what they need and can't get anything fixed or added to it without a lot of hassle.
What I'd like to see is Access allowed to live, and be improved. Could that be done by open-sourcing it? Could an alternative be created independent of Microsoft that would still be able to automate the creation of complex formatted Excel spreadsheets, Word documents, Powerpoint presentations, etc., if it wasn't a program inside Microsoft's control? Both Access and VBA could be very useful in helping new developers to design better databases and write better code if they had better features.
Who knows.
I know only this: that the way things stand, it's now becoming practically impossible to rely on Access and Office VBA to get things done reliably. The 'move fast break things' culture, the 'death by obsolescence' and the 'death of a thousand bugs' are putting paid to that.
But does anyone care?
Novex