Click here to monitor SSC

Tony Davis

Simple-Talk Editor
News, views and good brews

Access Denied

Published Thursday, May 13, 2010 3:18 PM

When Microsoft executives wake up in the night screaming, I suspect they are having a nightmare about their own version of Frankenstein's monster. Created with the best of intentions, without thinking too hard of the long-term strategy, and having long outlived its usefulness, the monster still lives on, occasionally wreaking vengeance on the innocent. Its name is Access; a living synthesis of disparate body parts that is resistant to all attempts at a mercy-killing.

In 1986, Microsoft had no database products, and needed one for their new OS/2 operating system, the successor to MSDOS. In 1986, they bought exclusive rights to Sybase DataServer, and were also intent on developing a desktop database to capture Ashton-Tate's dominance of that market, with dbase. This project, first called 'Omega' and later 'Cirrus', eventually spawned two products: Visual Basic in 1991 and Access in late 1992. Whereas Visual Basic battled with PowerBuilder for dominance in the client-server market, Access easily won the desktop database battle, with Dbase III and DataEase falling away. Access did an excellent job of abstracting and simplifying the task of building small database applications in a short amount of time, for a small number of departmental users, and often for a transient requirement.

There is an excellent front end and forms generator. We not only see it in Access but parts of it also reappear in SSMS. It's good. A business user can pull together useful reports, without relying on extensive technical support. A skilled Access programmer can deliver a fairly sophisticated application, whilst the traditional client-server programmer is still sharpening his pencil. Even for the SQL Server programmer, the forms generator of Access is useful for sketching out application designs.

So far, so good, but here's where the problems start; Access ties together two different products and the backend of Access is the bugbear. The limitations of Jet/ACE are well-known and documented. They range from MDB files that are prone to corruption, especially as they grow in size, pathetic security, and "copy and paste" Backups. The biggest problem though, was an infamous lack of scalability. Because Microsoft never realized how long the product would last, they put little energy into improving the beast.

Microsoft 'ate their own dog food' by using Access for Microsoft Exchange and Outlook. They choked on it. For years, scalability and performance problems with Exchange Server have been laid at the door of the Jet Blue engine on which it relies. Substantial development work in Exchange 2010 was required, just in order to improve the engine and storage schema so that it more efficiently handled the reading and writing of mails. The alternative of using SQL Server just never panned out.

The Jet engine was designed to limit concurrent users to a small number (10-20). When Access applications outgrew this, bitter experience proved that there really is no easy upgrade path from Access to SQL Server, beyond rewriting the whole lot from scratch. The various initiatives to do this never quite bridged the cultural gulf between Access and a true relational database

So, what are the obvious alternatives for small, strategic database applications? I know many users who, for simple 'list maintenance' requirements are very happy using Excel databases. Surely, now that PowerPivot has led the way, it is time for Microsoft to offer a new RAD package for database application development; namely an Excel-based front end for SQL Server Express. In that way, we'll have a powerful and familiar front end, to a scalable database, and a clear upgrade path when an app takes off and needs to go enterprise.

Cheers,

Tony.

Comments

 

daveclarke said:

In my experience Access developers are like Masons, a secretive group unwilling, to the point of paranoia, to expose the inner workings of their creations to public scrutiny. I suspect this is largely due to being often self-taught and a little anxious about what a "real" developer might make of their code. Replacing this disaster with Excel is a sideways step at best with many of the same issues. Version control is hopeless with no ability to peer into the version history to find out what has changed and by whom - no change here by moving to Excel. Testing in Access and Excel tend to follow the same route, either non-existent or near enough is good enough.
May 17, 2010 4:21 AM
 

ExMSFT said:

I was there when this happened - access had severe performance issues, so msft wound up buying Fox, just to get their hands on the go-fast voodoo.  For a number of technical reasons, I've never suggested using access as a back end.  It does have some cool features, but scalability was never one of them.

Visual Basic, however, was a pretty cool product for client development, and we used it quite a bit internally for client-server apps with SQL Server (like, version 1.11 before the Sybase/MSFT divorce), and I can categorically state that in my experience, we never, not once, had issues with SQL Server that weren't inherited from the platform (OS2).

Access was very cool for it's time, but needs to be purged, buried and forgotten.  The upgrade path for even a relatively simple db is painful; you're simply going to have to rewrite the thing (which it probably needs in a very bad way, anyway).  

There are other technologies that have suffered this fate and gone on to Great Things (e.g., you really don't want the details of the original Visual SourceSafe data store, but under Brian Harry's leadership, you now have Team Foundation Server, thank God.  If you're still using VSS, either migrate to TFS, or run subversion, but either way, run.  Fast.)

I think an excel-based front end for SQL Server Express is a really good idea, but keep in mind that the term you used: "Excel Databases" is a gross misnomer, as most of us internally add the term 'relational' to the term 'database', which Excel clearly is not.  Front end, yes.  Relational, no.  This brings up the challenge:  How to  describe a relational database in terms that an Excel user can grok?  And please, please, please don't implement that ill-conceived, counter-intuitive Access Query Generator.  Please.  I beg of you.

One challenge is that a typical end-user (or mile-wide/inch-deep tech) has little practical knowledge of schemas, relationships, etc and will be generating snapshots of data that may be totally out of context.  There is a subtle distinction between (actual example) "11,403 employees have installed this tool" and "This tool has been installed 11,403 times since launch".  Particularly when you only have 4,000 employees, and this is presented to the CEO.

Dangerous waters.  Challenging problem.  But please oh please let Access go away quietly unto the night.

-T
May 17, 2010 4:22 AM
 

Jim_B said:

Having swum in the dangerous waters of Access and been bitten several times, the risks far outweigh the benefits of the tidy forms designer.

Microsoft have come a long way since the forms designer in VB3 and now with LINQ and Dynamic Data tied into SQL Express, there is the ability to generate simple lists with no (user) code and no need to resort to voodoo and Repair/Rebuild cycles. SQL is robust and ORM gives you single point validation, something that Access always lacked. At the moment moving forwards becomes a little treacherous, but you can see the goal in sight.

Its a little v1.1 at the moment - but you can see its getting there and personally I'm looking forward to v2 and the features it will bring, allowing me time to deal with the business logic and leaving the display code alone.
May 17, 2010 4:52 AM
 

ruirib said:

Why should Access be killed? It has its own place and there is  market for it, a market that includes many power users turned in app developers just because of Access and Visual Basic. Thinking that anything SQL Server based would simply replace it is ignoring a large part of the reality...

Maybe there is a need for something different. I hardly think it's Excel, but hey,  other people can have different ideas.
I have developed a few apps in Access that would be impossible to be done with SQL Server simply for a reason: hardware resources. I see Access as a desktop database, that's all. If you see it as desktop database and use it like that, it does its job reasonably well. Performance wise, Access is pretty neat for the purposes it is well suited for. As any other software application, you need to consider its strong points and use it in scenarios where those are favored. But hey, doesn't that apply to any other sofware product?!!

May 17, 2010 8:24 AM
 

Artful said:

Tony,

I'm sorry to read your slag on Access. Unfortunately it's written from the viewpoint of knowing little or nothing about Access. You completely neglected the ADP file format, which provides direct hooks to SQL Server. I have written several industrial strength applications using this approach, with back ends ranging to dozens of Gigabytes and up to 75 simultaneous users. From within an ADP, a developer can create stored procedures and views and in fact do almost everything that could be done from Enterprise Manager. To be sure, there are reasons why one should choose .NET or even VB6 as an IDE, but robustness and scalability are not among them, insofar as one chooses the ADP file format.
May 17, 2010 8:34 AM
 

Rowland said:

I take a different view. I spent a lot of years in Fox, Clipper, dBase etc. Not much of an Access guy but....

Having an ISAM style, single file, wipe-that-smile, takes-awhile, do-or-diel ::Sorry--too much Car Talk!:: thing is a nice way to get small things done. It's only when people extend it beyond the intended purpose that things get wonky.

May 17, 2010 8:59 AM
 

ChristianBahnsen said:

At the risk of tar and feathers, I'm going to defend Access (reseveredly) despite its shortcomings.  I've used it since Office 97.  You're absolutely correct that the Jet engine deserves a stake through the heart.  But Access Data Projects (ADPs) let you go all-SQL on the back end whilst keeping the "powerful and familiar front end".  You're absolutely right that Access isn't an enterprise-level tool but it still has its uses.  In my current job as a contractor working for a branch of the DOD, I don't have the option of creating WinForm, WebForm, or WPF applications.  ADPs still squeak under the radar so they're (IMHO) better than Excel workbooks for building a front-end.  I'm using SSRS for all the reporting.  In my current situation Access still is a useful tool in my toolbelt.
May 17, 2010 9:07 AM
 

IBMJunkman said:

In the past my employer used many Access databases.  Mainly because I.T. could not respond fast enough to new application requests so the user departments wrote their own. Many things have been said about Access DBs that I would like cleared up, if possible.
1. A single MDB access by multiple people is bad. T F
2. A single MDB front end with a separate MDB backend is better for multiple user access. T F
3. Multiple MDB frontends accessing a single MDB backend is better yet. T F
4. Multiple MDB frontends connected to a SQL DB is better yet. T F
4. Does using a MDE change any of the above scenarios? Other than protecting the app design.
May 17, 2010 9:20 AM
 

DaveHill said:

Some years ago, a fellow employee said 'you know, Access isn't a REAL database'. Technical issues aside, the fact is that a number of large corporations use Access to manage some day-to-day tasks that would be really way down on the to-do list of the 'real' database development team. And all the while, money would be dripping out of the bottom line.
I've worked with Access since version 2 and have gone from pretty stinky designs (that by the grace of God, worked) to some fairly sophisticated ones. To the users (who are really the final arbiters of what 'real' is), they saved the day and a good number of these apps have been in use for years.
Should Access be improved or replaced? Most definitely - upgrading would ensure my continued employment for a long time.
May 17, 2010 9:28 AM
 

BradAshforth said:

As a developer who started w/dBase III in '86 and was a beta user for Access 1.1 and 2.0, and as one who has since developed C/S apps using VB, VB.NET, C#, Java, SQL Server (6.5-2008) and various versions of Oracle ... I certainly agree about most of your statements about Access and it's limited scalability. That being said, if an Access application was correctly designed as a C/S app (where the mdb containing the data was separate from the mdb containing the code) scaling to SQL Server and even Oracle is fairly simple using passthru queries.  And even though I now primarily work with C# and SQL Server, recently my manager requested an application "dashboard" we could use that could not have been created as quickly as I had done it had I not used MS Access 2007.  As with any design or tool, if it's the correct tool for the job, use it.
May 17, 2010 9:32 AM
 

DGPerson said:

A little correction:
Two sources attribute Alan Cooper as the pappy of Visual Basic. He created a language called Ruby in 1987.  In 1991 MS combined Qbasic with Ruby and created Visual Basic.
By 1993 we were on version 3; that's the first visual language I worked with.

According to one source Access first appeared to us unwashed followers of the All Wise in 1991 with version 1.1.  Another source assigns 1992 to 1.0. Go figure. I attribute the contradictions of MS history to shame on their part; trying to hide their mistakes with confusion.

There are only 2 things any SQL DBA needs to remember about Access:
1) it will suck-up all the resources of a SQL Server database and block everyone else out.
2) the forms are what the users love and they don't live in SQL Server.
May 17, 2010 9:39 AM
 

danw52 said:

Tony,

I think your comments are quite inappropriate.  I've been a professional Access developer for the last 12 years.  The systems I create are sophisticated and high value, but are not used concurrently by large numbers of people, so everything works fine.  If my customers ever get to a point where we needed to scale up, I can quickly upsize the BE to SQL Server.  One of my customers has their system on a Citrix server, and it's now being used worldwide with good performance.

However, Access does have a specific issue that might be unique.  It can be used in a simple way by a single person effectively, but if that person wants to increase users and/or features, Access doesn't tell the user/developer that they are beyond their skills.  This causes IT departments to receive emergency requests to 'fix' a departmentally developed access database with no budget, no planning, and a mandate to fix it now!  After a few times of this, it's easy to blame Access as the problem.

When an Access system is developed by an experienced developer, IT barely even needs to know it's there.

I've developed a chart to show the relationship between Access Skills vs. System Value.  On this chart are three zones; Personal Productivity, IT Rescue, and Professional.  You can see it here:  

http://www.promationsystems.com/accessskillzones/PSIAccessSkillZones.pdf
May 17, 2010 9:51 AM
 

KDizzle said:

Access was a stepping stone on my way to SQL Server Database Administration, and in the right hands, it can be quite useful (we pulled information out of SQL Server for further manipulation and reporting).  The problem is, that guy, looking over the cubicle wall with an envious stare at the DBAs and database developers with a direct path to the SQL Server data, he thinks that he can do the same thing as you, without having to submit a request every time.  He knows enough to be dangerous, but he doesn't have SSMS, so what does the envious developer do?  He get's himself a copy of Access, connects to your database, and opens a table for edit in the middle of month-end batch processing.

Sure, there are great developers that use Excel and Access very well, but unless the tool is limited to those that understand the data that they are connecting to, it becomes a WMD.
May 17, 2010 10:03 AM
 

williamd said:

The sentiment in the IT world that Access is a bad thing is misaligned with the working world.  I have seen many instances of Access being used in remarkable ways.  Normally these systems are designed with a small user base, with a handful of functions, but then evolve into mission critical systems through scope creep.  
This evolution is supported by Access as it is so easy to get things done quickly and as such Access is a success at its own expense.

What I would like to see would be the replacement of the JET engine (with the scalability and data integrity problems) with the SQL Express engine.  This wouldn't take such a huge hit on the system that it would run on and would solve many problems.  The added benefit to this, is of course, that MS would have a much easier job of up-selling these customers when the time came to scale-up the Access applications.

With the SQL Engine baked in, it would allow further integration of the rest of the MS development suite, but as an optional extra and not a requirement.  I am sure that a lot of companies shy away from tools like SQL Express because of the perceived entry level.  If it was "hidden" inside Access, it would allow a significant roll-out of SQL Server to take place and would certainly cover the cost of the DB-Engine swap-out.
May 17, 2010 10:31 AM
 

jsmaccready said:

This is 'deja vu all over again...' (to quote Yogi Bera).

Every so often someone of great credibility (such as Tony) throws out the red herring that Access should die.  The comment is immediately greeted with approval from a limited number of like-minded folks and then the sky falls on them with many much more nuanced, thoughtful and reality based responses.  Look around on the SQL forums for more of the same.

Luke Chung (of FMS, the principle Access  tools / add-in vendor) once published a White Paper that suggested plausibly (but without strong evidence) that the population of Access DBs is an order of magnitude greater than those with more 'advanced' technology.  Even if he was wrong and the counts are equivalent, no one is going to abandon half of their data management infrastructure on the grounds that it does not satisfy the expectations of principled programmers.  Especially when those solutions work well enough and cost so much less than the alternative.

MS has always been a business (rather than technology) driven company and abandoning this feature of Office would be CRAZY.  It would obsolesce a huge skill set embedded in their most profitable customer set - the enterprise  and which constitutes a valuable internal labor market that is theirs exclusively.  It would open that 'owned' feature segment to unprecedented incursions when they are already under assault in the less protected word processing and spreadsheets segments.  ACCESS is why enterprises pay for Professional over Standard with the attendant marginal revenue.  Who, if they owned the ACCESS franchise, would surrender it to real competition?  Rudely put, 'get real'.  Apologies.

Perhaps this enterprise-level consideration within MS is what has prevented the SQL Team from offering a competitive product to Access.  It would be canabalistic and without benefit to the bottom line.  

A more constructive (and plausibly influential) intiative in this forum would be solid suggestions (or a request for same) for how ACCESS rdbms functionality might be advanced to mitigate the issues.  The suggestion that SSExpress become a bundled and better supported BE for the Access FE is such a comment.  

The principle barrier to that is probably related to the moat that has evolved between the Office and the SQL teams.  They should cut the chains on the drawbridge and may be doing so.  I know the ACCESS team is looking in this direction.  Perhaps pressure from the SQL community could be applied.  Value Adds to the SQL engines have been developed in Office (NB the BI add-in for Excel 2007+).  This tactic is extended somewhat in Office2010.  

May 17, 2010 1:47 PM
 

soulia said:

We bought our 2nd retail business 15+ years ago. The location had a goofy POS system that required duplicated entries. I won't go into the gorey details, but I replaced this system with an Access 1.0 application that I put together over a weekend. Then came sales reporting, inventory control, purchasing, gift registries, web sites, mailing lists, ... 15 years later - you get the picture. I have over a 1/4 million sales transactions at last count and the db is still under 50MB. Yeah, we got burned by the occasional internal security issues, but you learn, and, there is just enough rope.

UPS used Access for their WorldShip client the last time I checked. I'm note sure if they still do.

I would love to replace the system with a SQLExpress equivalent, but I have all those queries and forms to rewrite. Access for now.
May 17, 2010 1:48 PM
 

randyvol said:

Tony -
I could not agree more.

To expand on some of your points, my experience tells me the whole idea of a 'desktop database application' is oxymoronic.  In short, any application developed in a tool like Access that becomes 'successful' (as being defined by anyone who sees it and says 'I want that too') means there is no such animal.  Success equals deployment to more than one person (desktop).

I'm currently living in Access-purgatory because we have a need to "quickly" do an application.  I'm being told there is an Access template that 'with just a few tweaks' would be perfect for us.

The problems in the above statement are manifest.
#1 - Access is not Visual Studio.  And no one has bothered trying to make the controls even remotely like what a Visual Studio user is used to using/manipulating/coding to.
#2 - #1 means there is no such thing as 'relatively simple'
#3 - The mere description, wafted by the most enthusiastic Access developer, of how one takes an Access application and 'SQL-izes' it just makes me nauseous with the many ways it can go bad.  One listens and intuitively understands 'there is no way this can work'; which leads me back to the basic oxymoronic conundrum - #4...
(In point of fact we have such a beasty now - an Access application that 'grew up' and needed to be SQL-ized.  Performance has been problematic since day one and the more people we add, the worse it gets).
#4 - Even if I were to get this 'simple' now turned complex and multi-facted program working for one person - success means it will invariably need to be deployed to 50, maybe 100 people.  So I know at the end of the day, this Access template has me locked in to a blind alley.


So, I too am wondering why there isn't an easier way to develop front ends in Excel with SQL Server (any flavor, including Express) as a back end.

For example, I've just completed working Microsoft Support to death for two weeks trying to get tablix to work as described for a pivot.  The final verdict - cannot be done.
What was needed?  Simple - compare period 1 sales to period 2 sales.  Use a dynamic column to extract period 1 sales and period 2 sales;  lock and scroll both row and header ; use an expression in a 3rd column to calculate percent change, then sort in order.

Having them finally admit it cannot be done, I am abandoning my 'use SSRS for all reports strategy'  I don't want to, but I am forced to retreat because SSRS is deficient, so I am turning back to Excel as a means to do pivots.  
I'll have to do a crash learning course on VBA as a company my size cannot afford the rubic's cube product set that is required to realize 'power pivot' but that is OK as I won't have to spend a fortune on SQL Server 2008 R2, MOSS & Office 2010.

I think going forward Microsoft would serve itself well if they Killed Access, improved Excel and provided some way to migrate Access forms to Excel forms and dump Access tables to SQL tables; and finally migrate the Access queries to SQL stored procedures.

Death to Access !!!!  Give us a better Excel!!!!

randyvol
May 17, 2010 3:30 PM
 

ruirib said:

randyvol,

That's funny, you blame Access because someone made a bad choice, used Access for something it shouldn't be used and you allowed them, without asking the proper questions. God, I can see how Access is to blame there. Right.

Tell me, if someone would mess up similarly using another app or technology, would you blame the technology too?

I think your post is great, cause it shows very well how and why Access can be misused. Thanks for that.
May 17, 2010 5:49 PM
 

Eric Russell said:

Do Microsoft executives really think Access is the crazy old uncle in the basement?
It's inclusion in Microsoft Office has helped it become the defacto standard business productivity suite and generate $20 Billion annual in sales.
We can argue that SQL Server Compact or Express Edition is technically superior to the Access MDB format, but there is a market for an easy to lean, low tech, database that one can email to a coworker or perform a copy / paste backup.
I don't really see aunt Sue maintaining her recepies or uncle Tom keeping track of his millage and expenses, using VB.NET and SQL Server Express Edition. Who amoung us wants to assume the role of a 2nd shift on call database administrator for our in-laws and neighbors?
You correctly brought up the fact that Access is really two products; there is the database engine / file format, and then there is Access the integrated development environment, form builder, and reporting tool. Now, it's worth mentioning that Access can leverage most any ODBC or OLEDB relational data source on the back end, and starting with version Access 2007 the functionality to integrate with SQL Server is even more tightly integrated with the new ADP project file format. Even if Microsoft discontinued support for the Jet Access database engine, the latest version of MS Access could stand alone as a first class IDE, reporting, and rich client application layer for SQL Server and Oracle.
May 17, 2010 8:10 PM
 

daveclarke said:

It appears one should never discuss religion, politics, or Access databases. Personally I struggle to see where it might be described as the correct solution to any enterprise problem and in my experience has been the cause of much frustration. Many of the points raised can be used both for and against the product depending on context. As a developer I would like to see the product updated to use modern .Net languages, integration with a version control system, some form of test tool appropriate to unit testing, out-of-the-box AD authentication/authorisation to avoid  dreadful homegrown security schemes, and be able to provide a simple transition to a SQL Server environment as needed. This might go some way to improving the perception of Access as an enterprise-level tool.
May 18, 2010 2:50 AM
 

Daman said:

If your organization has 100 or 1000+ users and your IT department is bigger than most small companies I can understand your aversion to Access.  Your IT department cannot keep up with all the IT requests and management isn't going to provide you the manpower to get everything required done.  Personally, I would not want to work in that environment.
I work in an IT department that has recently grown to 2.  We develop and manage a set of Access applications that run our business from A/P, G/L, A/R, to business specific applications.  The systems are responsible for $14 million in revenue.  Not a big amount for the corporations but we keep very busy.  
Access affords us the abilty to respond quicky to changes while keeping our footprint simple.
The "copy and paste" backup plan is great for us because if we do have a disaster our core functionality is up and running in 10 minutes on a laptop.  Try that in a server environment!
Drop Access and give Excel more functionality!  Now there's an oxymornic plan!  Give more control to the macro writers, that ought to work!
Access is being used in the large corporations because there is a need to get data organized that is not currently being addresses.  The users have made it a priority and IT hasn't.  God forbid it is not being done by the experts.  At least Access has staved off your problem and got the users thinking about the future system you would develop if you had time.
Sure Access does not have all of the bells and whistles the big databases have but it's been 15 years and we haven't lost any data.  I am not a big fan of Jet and wouldn't mind an upgrade.  My guess is MS would take the over-architect approach and make it complex enough that SQL Server and all the license fees would be a welcome expense.
For those who have Access data and systems thrust upon them, I feel for you.  But don't spend too much time in there.  We wouldn't want you to end up as part of this problem!
Corporations, Small Companies, Access and SQL Server are just decisions.  The question is, what decisions can you live with?
May 18, 2010 8:09 AM
 

Vayse said:

Yawn, not this old chestnut again.
Access is a great product. Some amateur users can cause problems, but that doesn't meant there is anything wrong with the tool.
If you go to a new site, and want to quickly analyse all their data - there is nothing to compare. Just log onto a PC that has MS Office, and create a new access database. You can easily link to existing tables in nearly any product, and import what you need. Put it on your flash key, then bring it back to the office to analyse. There is nothing else that compares to that.

May 18, 2010 9:00 AM
 

aoporto said:

I agree that SQL Express is key, but for this to work it must be easier to install for newbie users.  A 'simple install' option that picks defaults for you would work.  If you have this option a lot more ISVs will use SQL Express insted of Access.
May 18, 2010 10:46 AM
 

Phil Factor said:

It seems to be a measure of the bunker mentality of Access developers that someone who writes ...
"Access did an excellent job of abstracting and simplifying the task of building small database applications in a short amount of time, for a small number of departmental users, and often for a transient requirement.

There is an excellent front end and forms generator. We not only see it in Access but parts of it also reappear in SSMS. It's good. A business user can pull together useful reports, without relying on extensive technical support. A skilled Access programmer can deliver a fairly sophisticated application, whilst the traditional client-server programmer is still sharpening his pencil. Even for the SQL Server programmer, the forms generator of Access is useful for sketching out application designs."
... should be attacked as writing a  'slag on Access'. 'written from the viewpoint of knowing little or nothing about Access', whose 'comments are quite inappropriate'.

If Access had received the same development effort by Microsoft that SQL Server has received, and if more thought had been given to the migration route for Access-based systems, then all would be well. The basic concepts were good. As it is, why would anyone choose Access over Powerbuilder 12 which is a native .net application that produces WPF apps, has support for almost any database you can think of, and allows you to communicate via  Web Services. You can even use net objects in your code.
May 18, 2010 12:55 PM
 

BuggyFunBunny said:

Wow.  I saw this Editorial some days ago, and was going to pass, in that it's been quite a while since I've Access-ed.  Came back today, and I couldn't get through all the comments without feeling my blood pressure rising dangerously.  The only way to slake the thirst is to add yet another comment.

Lo those many years ago, I was involved with 1-2-3, Access, dBaseII/III, Clipper, and, eventually Excel.  One of those applications I had to "work with" was a 1-2-3 spreadsheet "database" application strewn with data areas and macros.

The VERY idea of postulating Excel as a better frontend engine to Jet is preposterous.  Jet (Access is just a frontend/designer, not an engine; why people still have to be told this is increasingly disturbing) won't die; largely because of all those VB/Access frontends floating around.  You're (those who built them) just as hidebound as your COBOL slinging grandfathers.  Stop it.  Excel "databases" are just flatfile messes built by accountants who don't know nuthin.  But said accountants argue that building applications can be done by amateurs.  They wouldn't assert that they should be allowed to argue with their neurosurgeon over the proper way to remove a brain tumour, but they make the amateur argument when it comes to their businesses.  

Never send a boy to do a man's job.  But boys do it all the time.  And we suffer perpetually.  The issue isn't really about the Tool.  It's about the brains that use the Tool.  The wrong (lesser) brains are messing up the world by using the wrong Tool the wrong way to build wrong applications.  Stop it.
May 18, 2010 5:51 PM
 

sgtahan said:

Good grief, Phil.  Your mention of Powerbuilder peaked my interest.  I went to the Sybase website to check it out.  After reading the brief, I clicked to the purchase page.  What a shock.  $8,500 for one standard developer license and (hold on) $36,750 for a single enterprise developer license (no support and no ODBC/OLE-DB drivers).  And you have to ask why would anyone choose Access over PB (the Euro isn't doing that well against the USD).
May 19, 2010 10:23 AM
 

randyvol said:

ruirib -
How and in what sense can you claim Access is being mis-used in my characterization of a business problem needing solved, when, in point of fact MSFT has done everything it can do with its very capable marketing programs, evangelists et al to persuade business people that:
1) you can build applications quickly - for crying out loud, I even mentioned that the Access template provided by Microsoft was the starting point for the claim that we could craft an Access-based  solution?
2) Access comes with wizards and such that are supposed to help one 'SQL-ize' an Access application?
Thanks in turn for making my point - MSFT typically oversimplifies how problems can be solved; pitches their products as "solutions for everyone", then everyone wants to blame IT when they cannot make it work.

To summarize -
MSFT "markets" a product to a gullable public.
Then puts up slick web sites offering "templates" and other starter kits
Then puts add-ons into its product when shortcomings are observed (like paths to SQL)
Then blames the people in the know who come in after all the promises are made and to point out the sad reality that once again, we've been mislead.

Are you by any chance an Access-developer-for-hire?
randyvol redux
May 19, 2010 11:50 AM
 

Eric Russell said:

"...As it is, why would anyone choose Access over Powerbuilder 12 which is a native .net application that produces WPF apps, has support for almost any database you can think of, and allows you to communicate via  Web Services..."

I can't imagine a non-developer, like my aunt Polly, using PowerBuilder and SQL Server to keep track of her recipes or movie collection. WPF..? More like WTF???
Even in a corporate IT department, if someone from accounting makes a special reproting request, I find it very useful to pull the resultset from SQL Server into Excel or MS Access and email it to them. From Excel or Access, they can create a pivot table and slice / dice the data without even knowing SQL. In fact, we already have an "Excel-based front end" for SQL Server, and it's called Excel.
May 19, 2010 12:42 PM
 

Eric Russell said:

If we're looking for a Microsoft development tool to throw under the bus, then how about Visual FoxPro ?
May 19, 2010 12:52 PM
 

Phil Factor said:

Re: PowerBuilder..
Oops. I blagged my copy from Sybase. Sure, I didn't mean to suggest it for the local tennis club! (I use Excel for that!).  I suspect that they sell it for that sort of money because it saves far more than that in the long run to their corporate customers.
May 19, 2010 1:36 PM
 

ExMSFT said:

Visual Foxpro went under the bus some years ago... yet I still had a gig in 2008 where I had to 'simply port the back end to SQL'.  Right.  187 tables, no triggers, no RI, no indexes, keys stored in separate tables,  all accessed by Win32 front ends (also written in VFP) building queries dynamically via 'business objects' written in VB.  This is EXACTLY what happens when an app starts as Excel, moves to a desktop db solution, and finally to SQL 2008. This medical information systems company started as a typing service, and it shows.  The dev lead, for example, was tracking bugs on a small whiteboard when I started.  No test plan, no specs, you name it.  It was ugly, and they (including the board of directors) really dug in their heels against change.

Companies in this situation need to own up to the fact that they need to (pay to have) the business rules implemented in a far more robust way.  They hate that.

I like the comment about running the biz in SQL and giving the non-rdb folks slices of the data for them to manipulate with whatever tool they choose, to their hearts content.  That makes a LOT of sense, bearing in mind that they run the risk of presenting bad information gleaned from good data.
May 19, 2010 2:41 PM
 

Eric Russell said:

When Visual Foxpro 3.0 came out in 1995, it had a very advanced IDE and featureset for it's time. It supported both code and visual object classes with inheritance, encapsulation and polymorphism. You could save your forms or a collection of GUI components as reusable components, not OCX controls, but something similar. It had featues that Visual Basic never caught with, not even in the latest VB 6.0 version. However, this same article could have been written about FoxPro 10 years ago, just replace the word "Access" with "FoxPro".
May 19, 2010 7:47 PM
 

DeafProgrammer said:

MS-Access is an excellent product if you know how to write them into front-end applications properly.  Unfortunately there is a lot of people out there are creating problems in MS-Access applications because they don’t realise what's the underneath in MS-Access product such as Jet engine and the limited built-in functionalities.  I am totally agreed with Tony Davis.

I have seen hundreds of them and most of them are hopeless, shocking performance, even glossy third party MS-Access applications are really shocking too. Once, I was working on the conversion project with over hundreds of corporate MS-Access applications and databases, my job was to convert them from MS-Access 97 to MS-Access 2003.  It was virtually impossible for me to rewrite them in MS-Access 2003 so I decided to convert them via the built-in conversion wizard after the stakeholders decided to select the option of “doing nothing” due to two reasons, the cost and they are “at least” working.  After the crappy conversion process, I ran all converted MS-Access applications/databases through my VBA module’s routines to correct the common errors automatically.  Sadly, they are currently running today.

Here my tip:  For those who used SQL Server database for your MS-Access application then remember that any processes outside of SQL Server should not have direct access to tables, views or functions.  The simple solution is to write stored procedure.
May 19, 2010 10:25 PM
 

Siarhei said:

I always took into consideration hypothetical ability to use MS-Access as client-side database, but truly did not know anything about pages corruption. Thanks. For short introduction.
May 29, 2010 3:19 PM
You need to sign in to comment on this blog
<May 2010>
SuMoTuWeThFrSa
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345
Migrating from OCS 2007 R2 to Lync: Part 4
 Having migrated the rest of our users and legacy resources across, and start getting ready to... Read more...

Automated Script-generation with Powershell and SMO
 In the first of a series of articles on automating the process of building, modifying and copying SQL... Read more...

Seth Godin: Big in the IT Business
 Seth Godin has transformed our understanding of marketing in IT. He invented the concept of 'permission... Read more...

Using SQL Test Database Unit Testing with TeamCity Continuous Integration
 With database applications, the process of test and integration can be frustratingly slow because so... Read more...

Converting String Data to XML and XML to String Data
 We all appreciate that, in general, XML documents or fragments are held in strings as text markup. In... Read more...