• Paul (unregistered) in reply to AMerrickanGirl

    If it's a non IT professional it shouldn't be a WTF since it's a lack of formal knowledge / professional experience / training.

    It should only be a WTF if it's one of us professional programmers (theoretically at any rate) since we should know better.

    Most of the WTFs are professional programmer ones, not the ones who with no knowledge or background manage to put together an application that works.

    And trust me I've seen a lot worse. That comment stating that it seemed obvious is as helpful as the following one I once found in some source code.

    // don't remove this line because if you do everything breaks. i = 1;

    Now that one to me was a WTF :D

  • Tom (unregistered) in reply to AMerrickanGirl

    Oh. I've used access a lot. Usually in a kind of reporting tool fashion, but also to write serious applications. And you can do it. Sure.

    But it is a horror to keep every thing clean and especially documented. Since there is no layer between the database and the front end, you cannot really document the SQL's that go in the front end.

    Furthermore, the Jet engine is not brilliant (although the SQL dialect is), so you need to use a actual RDBMS. Then you quickly run into performance problems, because MSAccess starts pulling whole tables in before joining and stuff. So you end up moving things to views on the server. Many views. Form specific views. Many many views. Which does not add to the maintainability.

    And then you have the multidevelop setup. MSAccess is a binary, you cannot develop with more than one developer, you have to use the "plase import this and that" approach.

    So, no, I do not like coding in MSA.

  • (cs) in reply to AMerrickanGirl
    AMerrickanGirl:
    OK, I am REALLY, REALLY sick of you high-falutin' tecchies making fun of Access and VBA programmers. ... 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.

    No it doesn't because this site is inherently about learning to do better by sniping at poor code. Perhaps you should start a site called the DailyRCC (Really Cool Code) to encourage good coding practices by example.

    I suspect however that such a site would still not include any good Access code due to the open source bias of code samples on the web. In essence someone using Access will probably be in a commercial company so will not post their good code, whereas someone posting their non-work code will much more likely be using open source tools and therefore not Access.

  • Paul Holt (unregistered) in reply to MET

    I would love to see some really cool code in Access, but mostly it would be really cool because of the way it dodges and avoids Access's pitfalls. Like a champion ice skater negotiating an obstacle course.

    http://www.thedailyrcc.com

  • MOB (unregistered) in reply to AMerrickanGirl

    Try Firebird (http://www.firebirdsql.org/). It has anything you may need to fit your "small needs". Avoid Access.

    CAPTCHA : genitus

  • SomeBody (unregistered) in reply to AMerrickanGirl

    Don`t take it so seriously, its just a daily laugh in our own wonderous world of IT.

  • Nope (unregistered) in reply to AMerrickanGirl

    ..agree, the tool itself shouldn't be blamed for worse programming skills. Microsoft Office seems to be easy to use, but the tool itselfs offers such a tremendous integration one can really get lost in the possibilities..

  • Munaei (unregistered) in reply to AMerrickanGirl
    AMerrickanGirl:
    But of course, THEIR code doesn't end up on the Daily WTF.

    And that's exactly the way it should be. Good examples in the wild, bad examples end up here.

  • Mr Foo (unregistered) in reply to John Bigboote
    It allows people who don't understand nerdy stuff like 1NF to develop databases quickly. What could possibly go wrong?

    It also allows people who don't understand nerdy stuff like databases to develop databases quickly.

  • TDot (unregistered) in reply to AMerrickanGirl

    It's not the fact that you use ACCESS that is the problem. It's HOW you use access that is the problem. If a surgeon doesn't have the time or resources to give you a surgery you need do you go downtown hand a bum a machete and say "Let's do this?". No? Then don't do the same with software development.

  • (cs) in reply to Tom
    Tom:
    Oh. I've used access a lot. Usually in a kind of reporting tool fashion, but also to write serious applications. And you can do it. Sure.

    But it is a horror to keep every thing clean and especially documented. Since there is no layer between the database and the front end, you cannot really document the SQL's that go in the front end.

    Furthermore, the Jet engine is not brilliant (although the SQL dialect is), so you need to use a actual RDBMS. Then you quickly run into performance problems, because MSAccess starts pulling whole tables in before joining and stuff. So you end up moving things to views on the server. Many views. Form specific views. Many many views. Which does not add to the maintainability.

    And then you have the multidevelop setup. MSAccess is a binary, you cannot develop with more than one developer, you have to use the "plase import this and that" approach.

    So, no, I do not like coding in MSA.

    I'm not picking on you in particular, but your post hi-lights why Access has such a bad reputation. You code everything in ADO. It's the same thing as a VB6 app. OK, if you think VB6 sucks, that's fine. However, don't slag on Access because you only know how to create queries using the gui and rely on Jet and bind them to a display object.

  • A Gould (unregistered) in reply to minim
    minim:
    A Gould:
    ... (security policy executables that aren't vetted by Corporate - read: you can't build executables). ...

    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...

    Well, I'll save corporate IT for a different WTF. (Luckily, our local IT department is very good, and discrete when it comes to necessary but not-officially-allowed software.)

    But to reply to the "get out now" thoughts, I realized I should mention that I don't work for a programming outfit, and programming isn't my primary function here - so it's not realistic for us to have "real" tools, since my "system administrator" title is more honorary than real.

    But, we have upgraded to SQL Server this year after someone's Access database melted down and killed six months worth of data. (I'd tell the story, but I was on leave when it happened, thank the Maker.) So our Access files are now mainly front-ends to a real database. Everyone is much happier now. :)

  • mickeyding (unregistered)

    Some translations for you - Bijschrift = FootNote Kist = Box KnoppenLijst = Button list Kleuren = colours It is Dutch, by the way.

    The WTF that I can see is that the author is setting what looks like a global boolean return variable called "gewijzigt" prior to leaving each sub. Having those subs as functions would go a long way to making this code a bit more "industrial strength"

  • Pilum (unregistered) in reply to AMerrickanGirl
    AMerrickanGirl:
    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.

    Because their code is generally not FUBAR'd...

  • (cs)

    Of course there are professional Access developers, just as there are also fly-by-nights, and just as there are also both types with other platforms.

    Nothing wrong with a professional Access developer who does things in a professional manner. Even less wrong with an ethical Access developer who will honestly advise a customer if Access is not up to the job of meeting their requirements.

    Whatever the reason may be, Access in particular seems to attract developers who are neither professional nor ethical. Not all of them, but certainly a lot more than a lot of other platforms.

  • SomeoneWhoWroteAccessOnce (unregistered)
    Printing is done by turning all control elements' Visible property off except for the labels representing crates, printing the form, and turning the control elements back on.
    if only access controls had a DisplayWhen property...
  • Leahn (unregistered) in reply to AMerrickanGirl
    AMerrickanGirl:
    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.

    Oh, no? REALLY? Do you speak from personal experience?

  • Code Monkey (unregistered) in reply to AMerrickanGirl

    Okay...what about 'worse than failure' don't you understand?

    By definition - the 'good' VB work won't be showcased here.

    DUH?

    On another note, VB is a pox on the world. It made it 'easy' for non programmers to lash together a bunch of objects in a very ugly way that was unmaintainable. Furthermore, IT was then made responsible for maintaining it in many cases. I have no sympathy...

  • pb (unregistered) in reply to AMerrickanGirl
    But of course, THEIR code doesn't end up on the Daily WTF.

    You're obviously quite angry that your code did.

  • JohnFx (unregistered) in reply to Andrew
    Andrew:
    In the short time I've spent developing database applications, I've come up with a handy rule of thumb:

    If you're using Access, you're doing something wrong.

    My rule of thumb is this: A good programmer could create an elegant app in Lego MindStorm. Bad programmers become platform snobs and one-trick ponies.

  • JohnFx (unregistered) in reply to John Bigboote
    John Bigboote:
    Andrew:
    In the short time I've spent developing database applications, I've come up with a handy rule of thumb:

    If you're using Access, you're doing something wrong.

    It allows people who don't understand nerdy stuff like 1NF to develop databases quickly. What could possibly go wrong?

    I guess it is a good thing that real DB platforms like DB2, SQL, Oracle, or MySQL all prevent you from building a data model that isn't normalized. Don't they?

    I am betting that this guy actually thinks the business problems he is trying to solve is to use well formed XML, normalized databases and the "Proper" platform.

    If you look around the table and don't see the WTF, you are the WTF.

  • (cs) in reply to TC
    TC:
    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...

    If these people wouldn't write code consultants would be workless. If things would run smoothly we (the IT people) wouldn't have a job. If this world was perfect IT people wouldn't have a job at all. Sure, we complain. Man is made for complaining about current situations and how nice things could be. That is normal. Without that there wouldn't be progress. Only because we do NOT like current situations we try to improve them. Some don't like that. But still they install the laterst version of XYZ language just because it seems to be betrter than the preceeding one. And so on...

  • Tom (unregistered) in reply to Anonamoose
    Anonamoose:
    Tom:
    But it is a horror to keep every thing clean and especially documented. Since there is no layer between the database and the front end, you cannot really document the SQL's that go in the front end.

    I'm not picking on you in particular, but your post hi-lights why Access has such a bad reputation. You code everything in ADO. It's the same thing as a VB6 app. OK, if you think VB6 sucks, that's fine. However, don't slag on Access because you only know how to create queries using the gui and rely on Jet and bind them to a display object.

    Ahhhh, assumptions. :-) B

    ut I do know how to code ADO or DAO or all the other versions of the same that MS has made use happy with. The point is that if you strip the embedded SQL things from MSA, you better simply use VB, otherwise you'll only be battling the MSA system. But if you decide to not use MSA forms, you'll miss out on all the extra's that MSA gives you for a quick start.

    But let's be honest (and I'm called "Mr MSAccess" in my company for a reason), MSA gives you a great start, things look great from day 1, you get a lot of free functionality, but when the project matures these things start to bite.

    Assuming we're doing MSA and not VB, MSA misses a layer between the SQL and the form - and it's not filled by ADO or alike. You may manually fill up the GUI elements, but then things like date notation in international application become a real crime! When using the direct binding MSA solves this for you, but you pay a price.

  • Dave (unregistered) in reply to AMerrickanGirl

    Are you serious?

    Maybe, just maybe, the reason VBA and Access pop up regularly is because there is more bad VBA code out there? As I understand it this site works by user submissions. As a C++ programmer I just don't often find DailyWTF worthy material, because a C++ coder wouldn't get hired if they wrote code like that.

    It's nothing personal!

  • rp (unregistered) in reply to AMerrickanGirl

    In case you didn't notice, this contribution isn't belittling Access or Access programmers in general. Just this particular example.

  • Steve B (unregistered) in reply to David Walker

    [/quote]

    Yuck. I hate braces. Not to start a language war, but VB is a fine language to program in if you're not an idiot. It's simple to get started in, therefore idiots can write "code" in VB.

    And I hate braces.[/quote]

    I hate "dim", "then", "as" "on error" and the rest of the clutter.

  • Jim Bean (unregistered) in reply to AMerrickanGirl

    Sheesh, a little sensitive aren't we ? (Some of my best friends are Access programmers.)

  • (cs) in reply to TDot
    TDot:
    It's not the fact that you use ACCESS that is the problem. It's HOW you use access that is the problem. If a surgeon doesn't have the time or resources to give you a surgery you need do you go downtown hand a bum a machete and say "Let's do this?". No? Then don't do the same with software development.
    Not the world's best ever analogy. You seem to equate Access with a machete, as far as I can tell. Well, this is a little hard on machetes, which can be quite useful and invaluable tools in their way, even though they lack an easy-to-build graphical interface; but let's pursue this thought, shall we?

    No, of course you don't hand the machete to a bum and ask him to slice you open. Neither do you hand the bum a scalpel, an oxygen mask, and a hypodermic full of morphine, and ask him to slice you open -- at best, he'll mainline the morphine before he gets around to making the incision.

    Now. Would you hand the surgeon a machete, and ask him to slice you open?

    That's kind of how real programmers view the prospect of using Access.

  • Project2501a (unregistered) in reply to John Bigboote
    John Bigboote:
    What could possibly go wrong?

    Famous last words.

  • fusi (unregistered) in reply to AMerrickanGirl

    its against our corporate policy to let users use access because it is absolutely terrible.

    "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."

    professional access programmers? thats a three-strike oxymoron if i ever heard one.

    yes i am full of hate.

  • Wade (unregistered) in reply to AMerrickanGirl

    I will say this is correct.

    We had a huge problem with the interchange of data between two multi-billion dollar companies concerning a multimillion (tens of millions actually) contract.

    How'd we solve the problem? Access. I was extremely skeptical, having the common attitude about Access. However, we hired a great database guru who immediately recognized that what the two sides needed was a common platform that both could use, since neither was going to be successful in modifying their multi-million dollar respective systems to work with the other in anything less than several years. He created data standards, file formats, file naming conventions and reconciliation procedures.

    With in a few short months we went from having a complete pile garbage that nobody could untangle to an efficient exchange of data.

    I'm not saying the job couldn't have been done with other databases or that Access is a good solution to all problems. But, I'll never turn my nose up at it again until I really validated that it's not appropriate for the problem at hand.

  • (cs)
    Daniel R.:
    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.

    I feel your pain.

    There's such a massive prejudice out there that assumes that people only use "toys" like Access because they're stupid lusers who have terminal arse/elbow misidentification syndrome.

    In my experience, in an enterprise environment there are four approaches to IT:

    1. Buy something, then blindly hope it does a fraction of what the salesman says it can.

    2. Ask the software house to build something. Then wait 6 months. Then experience the full horror of poorly executed local Javascript.

    3. Ask one of your ops monkeys to hit the 'Record' button in Excel. They might even know how to hit Alt-F11 to mangle the auto-generated code mess.

    4. Get a team together to build reasonable short-term solutions. In Access, even.

    My job is the result of option 4. Having put up with Access for a couple of years, I can say that yes:

    It sucks The SQL implementation is a joke It will GPF. For no reason. At random. Often. Multi-user and network performance is laughable It is responsible for birthing some horrific monstrosoties.

    However:

    It is possible to write decent, maintainable code in VBA You can get a degree of source control with the SCC plugin on MSDN. With the right config, it'll even play with Subversion or ClearCase Inheritance, no. But you can do interfaces. You can do Win32 callbacks. But for the love of God, don't.

    But by far it's greatest redeeming feature is that, at the end of the day, it ends up being just a document. Nothing to install, no big corporate boxes to tick.

    Our group championed the controls that we currently observe. Coding standards, version control, documentation and requirements gathering all go to ensure that work gets delivered on time, on budget and fully functional. Even if it is Access.

  • (cs) in reply to Wade
    Wade:
    I will say this is correct.

    We had a huge problem with the interchange of data between two multi-billion dollar companies concerning a multimillion (tens of millions actually) contract.

    How'd we solve the problem? Access. I was extremely skeptical, having the common attitude about Access. However, we hired a great database guru who immediately recognized that what the two sides needed was a common platform that both could use, since neither was going to be successful in modifying their multi-million dollar respective systems to work with the other in anything less than several years. He created data standards, file formats, file naming conventions and reconciliation procedures.

    With in a few short months we went from having a complete pile garbage that nobody could untangle to an efficient exchange of data.

    I'm not saying the job couldn't have been done with other databases or that Access is a good solution to all problems. But, I'll never turn my nose up at it again until I really validated that it's not appropriate for the problem at hand.

    Ever heard of comma-separated variables?

    Not saying that Access wouldn't work for a couple of multi-million companies who are both insane enough to base their data storage in Access, but it doesn't look like an optimal solution to me.

    Oops. Just to make it clear.

    <sarcasm>Comma-separated variables.</sarcasm>

  • CS Student (unregistered) in reply to AMerrickanGirl

    AMerrickanGirl said: "What other tool would you suggest the users have at their disposal?"

    SQLite. Done!

  • Vlad (unregistered)

    I dont think that even comments would help in this situation

  • jbrains (unregistered) in reply to AMerrickanGirl
    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.

    Uh, why exactly would /good/ code end up on the Daily WTF?

  • Escalator (unregistered) in reply to AMerrickanGirl
    AMerrickanGirl:
    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.
    Guess you've never heard of MySQL, then.
  • Brent (unregistered) in reply to AMerrickanGirl

    And, of course, there are wankers like you....

Leave a comment on “Developing in Access”

Log In or post as a guest

Replying to comment #:

« Return to Article