- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
OK, I am REALLY, REALLY sick of you high-falutin' tecchies making fun of Access and VBA programmers.
Yes, Access is a product of limited scope.
Yes, often people who don't know a bit from a byte design horrible hacked up abortions of databases.
However.
You're a user. You work in a very large company. Excel is not meeting your needs and you need a database. The IT department (a) says they don't have the time or the resources right now, or (b) says it's too small a project and they're never going to do it.
What other tool would you suggest the users have at their disposal? Access is the only database that anyone can use on their desktop for their small needs.
And there are some Access programmers who are professional, who study best practices, proper design, indexing, naming conventions, how best to connect to back ends, and so on.
But of course, THEIR code doesn't end up on the Daily WTF.
Admin
Oh, I have no problem with this scenario as written, but all too often the following happens:
1)What started as a single-user, limited-scope database grows into a multi-user, mission-critical departmental "application." As new features are needed, they are grafted on willy-nilly. Instead of linking to data that's available elsewhere--say, in our big enterprise database--they'll just duplicate the data.
2)The application starts bogging down and performing poorly, or the users break the MDB file or the application by upgrading Access.
3)We now have a help ticket to convert a poorly-designed database into a full-blown enterprise solution RIGHT NOW.
I don't blame this on users per se...they're doing what they need to do to get their job done. It's just an unfortunate side-effect of the process.
Admin
And don't forget some bright spark wanting to use it over a WAN link...
Access is excellent as a front end for SQL Server, but for anything else beyond the most basic trivial scenarios it blows donkey bubbles out it's ass.
Admin
I felt like a little princess because I could understand the dutch vars and comments! yah! :)
Admin
Is that not the point of this site? Bad code gets mocked, and good code goes somewhere else?
Admin
The problem is though, the number of access projects I've had the pleasure to work with, have, without exception, required complete rebuilds because the person who's developed it hasn't got a feckin clue how to do things, usually through no fault of their own. It's because they just wade into the application in a desparate attempt to get things working for their manager who also doesn't have a clue.
Admin
From my experience Access and VBA programmers are the worst. The MySQL and python combo is immensely superior and can be used on a desktop for small needs. Furthermore it doesn't cost a load of money and is therefore at the "disposal" of all.
Admin
It's not so much the platform itself, which is reasonable enough given it's initially intended purpose. It's more the fact that it's so easy (and appealing, to a non-technical person) to abuse it and push it beyond it's capabilities. Popularity and availability then play their inevitable roles, and the end result is what we've all seen far too many times. Hell, most people would probably think "Access" when they hear the word "database", and not even be aware that there are other more suitable alternatives.
Admin
I see a "kist" function in there a lot.
If this were Perl, would, "KISS"++ == "KIST"?
Admin
Thread.Over
Admin
But of course, THEIR code doesn't end up on the Daily WTF.
Er yeah, that's right.
A WTF is still a WTF
Admin
Access was replaced for new development by SQL 2000 Desktop Edition (MSDE), followed up by SQL 2005 Express.
That said, for the non-professional, there's nothing wrong with using Access itself. The problem is only in claiming to transition to 'professional' status while not simultaneously transitioning from Access to at least SQL Express + VB.NET (which is what recent versions of Access prepare you for, you can even use most of your code).
Admin
Just because you're too lazy to figure out how to use a hammer doesn't mean we should share in your excitement when you successfully drive a nail using a socket wrench.
Admin
But only because I'm not showing you my code :) C'mon: most of the code here is Java. That doesn't mean all Java code is bad does it? On second thoughts, don't answer that....
Admin
I concur! MS Access has enabled non-developers to meet their business needs without the overhead of IT patterns and practices. If we (as developers) looked at the re-development of MS Access type applications as a refactoring exercise instead of denigrating the 'non-professional' who built it, I'm sure things would run more smoothly...
Admin
Admin
That's why we try to blame the flemish ;)
Admin
Such ignorance. I have a colleague in Brisbane who is a perfectly competent programmer. He writes niche applications in Access because (a) there is clearly a business need for them and (b) no-one else will touch it with a bargepole, which means steady work for him. I see no signs of him going out of work just yet. And I have seen some of his code and it looks fine to me.
So eff off with all this supercilious crap. What's your bloody Oracle like I'd like to know... bet it's not very pretty either. And don't spout MySQL or PostGreSQL at me either. I have worked with these puppies and know their limitations as well. Which is plenty.
Admin
I'm sure we can all name our favourite little friends. OracleXE/APEX anyone? blah blah blah blah blah
Admin
No, but we end up having to figure out how your undocumented application works when you've left and people have come to rely on it. It's a total pleasure finding out about these home brew monstrosities, typically I get phone calls:
User: "Hi, I've got a problem with the x database..."
Me: "the what database.."
User: "oh, the one that john doe built for us"
I particularly love it when they get password protected and the person who leaves doesn't bother to tell anyone the password too....
Admin
Admin
Then your company has retarded (or lack of real) "security professionals." There is NO way disallowing executables increases security. It is just makes an unproductive environment.
Someone can take over your a PC with a VBA attack application fast as any other vulnerability. They are called vulnerabilities because well, computers are vulnerable to them SHOCK! I'd change jobs if I were you, don't think I could work for a company with such people...
Admin
Of course it wouldn't end up on here, we couldn't find such a hypothetical / mythical programmer.
Admin
Why not use PostgreSQL or mysql insted.
Captcha: bene (Geserit???)
Admin
The question you should ask when using Access or any of the Microsoft Office programs is not: "What could possibly go wrong?" It should be, "What could possibly go right!?"
Programming in VB used to be restricted to programmers. Now, Microsoft Office allows anyone to butcher code with such ease, I'm surprised there aren't more WTF's like this.
Admin
"And there are some Access programmers who are professional, who study best practices, proper design, indexing, naming conventions, how best to connect to back ends, and so on.
But of course, THEIR code doesn't end up on the Daily WTF."
Duh?
Given that actually you made that statement, are we to believe that the above code could be yours? :-P
Admin
I've never even heard of "OracleXE/APEX." If you've got a problem with it, take it to the local authorities in Brisbane. They'll just blame it on the abos, anyway. (See? I can do this too!)
There's a wide variety of better alternatives to Access, these days; and, yes, they do indeed extend to SQL Express, etc. I'm happy with Perl/Tk and Data::Dumper, even though I don't like Perl at all and have serious reservations about Tk, let alone Data::Dumper. It does what I want. I wouldn't dream of using it for a full-blown professional project.
Which is where, I think, we came in. It isn't just that Access is unsuitable (in oh, so many ways) for a professional project. It's also that far too many (I'd guesstimate 80%, as per usual, and have experience of several) Access "projects" are born into the real world as total abortions.
Take your pick: simple enough for illiterate peasants, or structured enough for a real system.
And I don't even like databases... Not that I'd regard Access as one.
Admin
Smooth, baby. I can't wait.
Admin
Try using a computer that doesn't run VBA.
I'd like to recommend one that lacks each and every vulnerability, but you might want to start by concentrating on the ones that actually eat up your entire company, rather than the trivial buffer overruns we see now and again in the current Millenium.
I wouldn't bother changing jobs, if I were you -- because you'd be pretty damn worthless anywhere else.
Admin
"this seems obvious to me"
Admin
Their code doesn't end up in the daily wtf, because the only code that does is the type thats crap =)
Admin
Why use Access when SQL Server 2005 Express is free?
Admin
Brilliant
lets start a site called "The daily Wow I can't belive its VB and Access"
Admin
The MySQL/python combo is immensely superior for what purposes exactly? For interoperability with other MS Office products, no.
I've been stuck working with some VBA and Access in order to convert some fairly typical, overgrown Access apps to something more stable and friendly toward multiple users.
Unfortunately, you can't just use your favourite tool for all projects, and expect it to be the best under all circumstances.
Admin
Because Sequel Server doesn't have a good interface, and lacks many basic wizards for creating tables. Plus, it has no support for queries, forms, or reports. You get what you pay for.
Admin
I sort of agree with you. People who are too critical or dismissive usually haven't actually built anything. I respect people who get the job done with whatever tools are available.
That being said, I've spent the last few years developing a medium-sized system in Access VBA, and it does suck.
All your source code is stored in a binary blob. The closest I can come to revision control is to compress the whole blob into a new ZIP file every half hour or so.
The blob gets corrupted several times per day, and the only remedy is to create a brand new blob into which all the old objects must be manually imported. The easiest way to corrupt the blob is to just rename a Class Module.
I once managed to crash the compiler with a legal piece of code - no error messages or anything, just a hopelessly corrupted blob. Thankfully I had the last 500 ZIP files to help locate where things went horribly wrong (150 revisions ago, it turns out).
I should mention that as your code is running, the blob will start growing without reason, until it fills all disk space available and crashes. So once in a while you have to get all users to exit so you can use a Compacting utility. Yes, databases need to be compacted, but I'm talking about a front-end with no data.
I can live with ugly syntax, lack of short-circuit evaluation, lack of constructors/destructors that take parameters, no overloading, bogus compiler errors that magically go away when you re-import the same code, and an editor that makes me long to use Notepad. But it's hard to build something this large without support for real inheritance and call-back functions.
As a professional, I'm trying to work with the tools I have. But I can also give you reasons to avoid developing in Access, and to run from anything written in it.
Admin
No, it's Dutch programming
Admin
Translation not available
Admin
Actually SQL Server Express Management Studio does come with reporting services, wizards for creating tables (etc), and all of the other good stuff. Put Access on as a front-end to it and you have a familiar environment for your users with a far more robust back-end. Use one of the Visual Studio Express editions if you need more.
No, I don't buy any claims in favour of Access for any non-trivial database work.
It's problem is that it makes things too easy for the end user to get a quick and dirty application up and running, and then outgrows it's own limitations far too quickly. The database engine is horrible, it's non-transactional, it's not client-server (try running it across a WAN link) (although admittedly you can split the database to alleviate some of that pain, but how many people actually do?), and it's multi-user "support" is pretty pathetic. In a nutshell, it's used in a lot of environments where it's just not plain suitable, but it's a victim of it's own success in that it's just so so easy to get a functional prototype up. "Hey look, we've got a database! Isn't this cool? I wonder if it can do this too? BOOM!"
Admin
Eh, oh, el. Relax, no need to be so paranoid.
Admin
holy shit...
Admin
Personally, I'd use SQLite. It's a small, independant stand-alone database that supports SQL standards, and doesn't need much in the way of administrator access to get it installed and running.
Too many people who start using access do so because they think they can whip up a database in under a minute, and change it to the needs of the project as they go along. It's this (with a bit of scope creep) that usually leads to the WTF type applications.
Admin
I am just waiting for the first VSTO abuse to show up on this site... I will give it a month or so...
Admin
I don't know how it is now, but earlier versions of Access didn't support control arrays.
Admin
I used VB a long time ago and then it seemed a pointless exercise in coming up with different type names.
Now, recently upon using VS2005 and C# and ASP, I agree with the gentleman who said it is the programmer, and not the tool.
We are too easily blaming badly written code on the tool.
Jibril
Admin
then why read the site?
The scope of access wasn't the problem here. Access isn't the problem. The problem is that the company allows their staff to create awful systems and use them for important things.
if the user knows that their work is bad, they should improve it.
If the user thinks they did a good job, they should be held to account. If IT thinks that the project is inappropriate, perhaps they could be right!
Good code doesn't get on the WTF because, well, that's not the point of the website.
Overall, the problem you describe is caused by IT; I see the same problem where I work. There's a gap between the helpdesk and the enterprisey IT areas that stuff like this falls into. Too big or hard for helpdesk, too small or silly for serious IT.
To encourage, or even allow users to spend significant amounts of time creating software which is sloppy is not the solution to this problem. If the end users created something which worked properly in access, it wouldn't be on the D-WTF.
Lastly, to be constructive, you want to know what other tool users should be using? I answer "runtime revolution".
Admin
Whoa, dial down the wrath, Bane.
other languages appear in dWTF. Look harder.
people suck. We know this.
If we believe what you say, VB isn't designed for significant projects anyway. The part where a tiny project, which has outpaced its language's niche and is rewritten in something better? The lack of that, THAT's why it ends up here.
Porting code is a talent, a skill, a job and a serious time-saver for those smart enough to see when it needs to be done and then do it.
Please don't get all defensive, just because you enjoy programming in a language best suited for projects "too small" for "The IT department" to do (quoting you). If they remained that way, we'd never hear of them.
Admin
Admin
Admin
Hit a nerve did we luv?