Results 1 to 11 of 11
  1. #1
    Join Date
    Apr 2007
    Posts
    108

    Unanswered: RANT: Is Access developement pain in the a.. or is it just me...

    ...who is being stupid, untalented or however you want it to call it when I can't see wonderful simplicity of Access developement?

    I had to create simple and small database!

    Basically, Patients are Diagnosed, undergo Procedures performed by Doctors (capitalized names are also tables in my database).

    The idea is to create simple user interface where you put in data regarding facts mentioned above and print document you give to the patient like "On Feb 22nd you were diagnosed with..... and were treated with.... Control .....date.... and so on."
    Queries about who did what, who underwent what and how many procedures of type A or type B were done for diagnosis C will be designed later after data accumulation.

    The program would be used by nurses who are unfamiliar with databases, English and sometimes even computers. So it had to be user-friendly and resistent to any kind of unwanted and unpredictable keyboard or mouse inputs.

    AND NOW COMES THE PROBLEM!

    Designing user interface in Access boils down to designing forms, forms can be bound (which should be quick solution to providing user input) and unbound (which is supposed to be a time consuming but total control solution) - I was tought that by izyrider in http://www.dbforums.com/showthread.php?t=1624891 .

    But after trying to desing user interface with bound forms it seems to me that you have to put in enourmous extra effort to make forms resistant to malicious, accidental or ignorant user inputs.

    You have to kill all unwanted record navigation, which is pain in the a... and instead of being able to intercept NextRecord Event you have to prevent PgDowns, Tab Cycles, MouseScrolls and God knows what else that even hasn't crossed my mind. And turning off mousescrolls leaves you with side-effects - like inability to use mouse wheel in lists.

    You have to build your own record counters instead of ugly ones (which also presents unneccessary effort) - making buttons visible and invisible depending on the record number.

    Of course you have to validate each record before saving and also you have to give users buttons to undo changes. Having both of them in inbuilt fashion is plain shite, becuase after saving record once you can't undo it and you have to save it if you want to print a report based on that record.

    Not to mention anyone can Close your application in the middle of data input and incomplete and unvalidated data corrupt your database. So you kill of Access buttons but ALT-F4 still remains, you kill that off but still Non-responding errors, power shut downs and so on happen and you don't know what is in your database.

    Designing the forms is also tedious and crapy especially if you decide you don't like the size of the controls.

    Opening the form in AddMode also suks because although you have one record to deal with mouse scroll down moves you to new unwanted add record.

    Record being the basic building component of a database and form being its main mode od display should have been blessed with FAR MORE POWER IN CONTROLING ACTIONS TAKEN ON A PARTICULAR RECORD WHEN IN FORM VIEW!

    Maybe I'm stupid and uneeducated and it's all simple, but after Access made me jump through hoops to make 3 forms idiot-proof I think that sticking with izyrider's advice on going unbound and coding few UPDATE or DELETE queries would have been much more easier.

    Hooh, feels better now that I vented off.
    Last edited by Riorin; 12-20-07 at 19:04.

  2. #2
    Join Date
    Feb 2004
    Location
    One Flump in One Place
    Posts
    14,912
    Lol. I think you just learned the hard way what Izy was telling you. Bound forms = very quick development but things get tricky the more you try to customise. Remember that most of what you are talking about may be considered by many as removing functionality. I also, personally, think that you have gone to a real extreme making things idiot proof - you can ony do so much in any endevour.

    I don't know if you have any experience of application development with other tools\ languages but I find Access a very neat, intuitive one stop shop. Does that make it the perfect tool for all requirements? No! I never use JET any more. I am using ASP.NET & WinForms more and more but I still miss many of the things I once took for granted in Access. You don't have to disable this and override that in ASP.NET because a blank web page can do pretty well stuff all until you start coding.

  3. #3
    Join Date
    Dec 2004
    Location
    Madison, WI
    Posts
    3,926
    Riorin,

    I may suggest you grab some samples and look through them. I learned mostly from examples and reading great books like the Access 2000 Developers Handbook by Sybex. The Northwind database which ships with MSAccess has some really nice basic (and advanced) examples. You can also find some in the code bank in the MSAccess forum here: http://www.dbforums.com/showthread.php?t=1605962 or simply search the web for what you want to do.

    Remember that you have to think like Microsoft when you're using MSAccess. That's where I've seen a lot of developers find MSAccess so difficult. Microsoft designed MSAccess to be user friendly and developer friendly, leaving almost everything fundamentally basic. For example, they assumed that users would want to utilize the scroll button on the mouse to scroll through records. If you want to disable it (and see the code bank for an easy way to do this), you need to add a little bit of code to do it. I'm sure if MSAccess had the scroll initially disabled, there'd probably be a few developers screaming about how difficult it is to enable the scroll on the mouse and trashing Microsoft for having to write code to enable it. It's the same thing with a lot of the features and after developing applications for 20 years, I can see where it's a no-win situation (some users like a blue screen - some like a green screen, some want this - some want that, etc...etc..)

    Also look at the Form's properties. You can set a lot of things in the form's properties like record navigation to false which removes the navigation bar and prevents users from going to the next record.

    There's a lot of little things to learn and once you learn how to do them, you'll find that developing new applications goes pretty fast. I have my collection of coding snippets I've collected/developed over the years. When I need to do something like design a new form for reporting, I'll simply import the form I've already developed which fits the needs.

    I wouldn't start with unbound forms if you're new to MSAccess. Although this is a prefered method, it doesn't show you the basics of what form designing can do.

    I've had my times of frustration and cursing with MSAccess but when I've wanted to do something, I've always found a way to do it by either searching the web, or trial and error. Once I found the solution, I often kicked myself on how easy it was (again - I wasn't thinking like Microsoft.)

    There are some basic rules to follow. Like creating an autonumber field in your data entry table. Without it, you can find yourself having to issue a save command on your data entry form or you get surprises.

    Again, I'd highly recommend you look at the Northwind database supplied on the cd, play around with it for a day or two, look at the way tables and forms are designed and you'd be very surprised at how much you can learn!!
    Last edited by pkstormy; 12-20-07 at 19:35.
    Expert Database Programming
    MSAccess since 1.0, SQL Server since 6.5, Visual Basic (5.0, 6.0)

  4. #4
    Join Date
    Nov 2007
    Location
    Adelaide, South Australia
    Posts
    4,049
    Ummmm...

    Access OWNS!
    Owner and Manager of
    CypherBYTE, Microsoft Access Development Specialists.
    Microsoft Access MCP.
    And all around nice guy!


    "Heck it's something understood by accountants ... so it can't be 'that' difficult..." -- Healdem
    "...teach a man to code and he'll be frustrated for life! " -- georgev

  5. #5
    Join Date
    Apr 2007
    Posts
    108
    Thanks pkstormy, that's exactly what I did looking through searches and forums and I managed to solve almost everything and it works now but the point is IT'S NOT SIMPLE.

    Anyway, it's better now than in 1999 or 2000., because in pre-Internet age you could learn what the books tought and if you had a problem that wasn't dealt with in the book you were stuck. You had no one to ask and you had no site to look for solution!

    But, I still feel that single record manipulation being the most important and most repeated task in a form should have been properly surrounded by Events to give you full control like, OnNext, OnPrevious, OnFirst..., OnSave, OnChange, OnDelete etc.
    That would save you ton of extra work.

  6. #6
    Join Date
    Jan 2007
    Location
    UK
    Posts
    11,434
    Provided Answers: 10
    Access is like many other GUI tools - easy to knock something up quickly - but hard to master
    George
    Home | Blog

  7. #7
    Join Date
    Apr 2007
    Posts
    108
    And the second reason for my post was to indirectly ask the question?

    Are there better tools out there for dealing with the problems liste above? How about MySQL or SQL Express edition?

  8. #8
    Join Date
    Feb 2004
    Location
    One Flump in One Place
    Posts
    14,912
    Quote Originally Posted by Riorin
    Are there better tools out there for dealing with the problems liste above? How about MySQL or SQL Express edition?
    You are talking about the wrong sort of tools. Access is marketed etc as a database. It isn't. It is a RAD tool that acts as a decent interface\ GUI to the JET database engine.

    The problems you are having are front end\ presention issues. MySQL & SQL Server are backend, server databases. You can (indeed I would even recommend) use Access as a front end GUI to MySQL\ SQL Server. The sort of problems you are having are to do with your front end so more appropriate comparisons would be with Visual Studio (ASP.NET, WinForms etc), PHP, ASP classic, VB 6.0 etc.

  9. #9
    Join Date
    Nov 2004
    Location
    out on a limb
    Posts
    13,692
    Provided Answers: 59
    Access is a RAD development tools not a database per se

    the database that is the default for use with Access, ie unless you explicitly use something else is JET a file based data storage mechanism.

    Access itself can talk to virtually any datastorage mechanism, whether that be flt files, Exel, CSV, xBase or virtually any server product like mySQL or SQL server, heck it can talk to DB2, Oracle you name it Access can probably talk to it

    If it helps, think of Access as a very specialised development language environment like Delphi, Visual whatever, Visual Whatever.NET.

    However if you are going to use a server based data stroage then to get the best out of the server and Access you really have to use a different approach to the quick and dirty Access. you have to use unbound controls, you have to use pass through queries, you have to dump the data manipulation on to the server, you have to use access to handle the front. if you don't at best you get a marginally faster Access application which admittedly can support many more concurrent users, but at worst you get the wort of both worlds..... Access doing the data handling, the network gets clogged... th e sevrer sits there not doing a great deal.

    There is no such thing as a free lunch.. Access does a pretty good job, but it isn't all things to all men. Like other languages there is a right (well several right) way(s) and a wrong (well many wrong) way(s). You can make the wrong way work but eventually it will curl up and die on you.

    Bear in mind that plain vanilla Access is really intended for absolute newbies, so it enables them to get their ideas up and running and generally they can get a working db quite quickly. I found its also a great tool for modeling some customer problems allowing then to visualise there requirements, allowing them to understand the scope of the project. But if you want a truly robust application then you have to take control of Access and tell it explicitly waht it is you want. OK so you could use .NET or Delphi in place of Access, and you could, but the learning curve is just as steep or steeper, and developmrnt times are generally longer.

    Access Like most windows (well mostr modern software) is fiendishly complex tere are so many constructs, sentances, properties and methods that I doubt if anyone is truly a master of all of Access. You find techniques that work and use, you visit sites like this and you find a few more techniques that you weren't aware of, you buy some decent books on Access (such as Access XXXX developer handbooks, published by Sybex & writen by Getz & Associates) you learn a bit more.

    Access is a toll that can be used by developers of all ages and skills, although its sneered at by many professionals as a kiddy toy it can do a very creditable job. One thing it can do, which many professionals dont like, care for or ignore is if you present your (responsible) user a read only DB.. they can go away and develop their own reports, they can modify skeleton reports, they can develop their own read only forms (never let 'em write or change data), laid out the way they want.. try handing over a copy of Visual Studio.NET to a user and let them develop that screen that they really really need but don't have the budget, or the development team don't have the resources for.

  10. #10
    Join Date
    Apr 2007
    Posts
    108
    Thanks to all, makes a very good and in many areas eye-opening reading!

    Anyway, great place these dbforums.com.

  11. #11
    Join Date
    Nov 2007
    Location
    Adelaide, South Australia
    Posts
    4,049
    ^ Agreed
    Owner and Manager of
    CypherBYTE, Microsoft Access Development Specialists.
    Microsoft Access MCP.
    And all around nice guy!


    "Heck it's something understood by accountants ... so it can't be 'that' difficult..." -- Healdem
    "...teach a man to code and he'll be frustrated for life! " -- georgev

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •