Randy,
First, I'm not bashing Access, just putting it in it's place.
My rant was more about my personal dislike of mde's, much of which may be based on experiences with them built by non-savvy coders, but much based on true shortcomings. I've made a very good living developing applications with Access, as well as other tools. But the Access ones I've done were inter-company ones--not commercial, 'shrink-wrap' or enterprise apps.
I would never worry about debugging at the end user’s PC because the end user would never have the DATA at their PC.
I'm not sure what you mean here. As far as debugging, data onboard has little to do with debugging. There are now, have always been, and always will be machine-specific issues that you need to work out. Why make it a pain to do so?
Also, there are certain calls that aren't available in an mde, like dynamically creating/alterin reports, any code which operates on objects in design view, which is a huge timesaver for me, and eases object congestion when I can have a single report that I group differently, or use different controls, etc, instead of having 12 reports that do the same thing but have different controls. An example is a calendar report I use, where not only each month of each year has it's controls in different places, but as the persons schedule changes I span a control across the days as required. It's exceedingly difficult, if not impossible, to do this without the CreateReportControl method. This can't be done in an mde. I suppose I could list some other things that couldn't be done either, and I suppose there's always 'workarounds' or more than one way to skin a cat, but you get the picture.
Yes--for a very simple app that you want to throw together quick & dirty with data that isn't super confidential, then sure--an mde can save you some time. But if I find myself doing all sorts of little 'Island' apps on this persons desktop and that person's desktop, then I think there's a management issue where we need to consolidate requests and think about an larger solution.
Here's an example.
The crew prior to my arrival as a consultant here, would get a request from, say Joe and Bob in accounting. They needed this or that report. So they'd build an mde with an odbc link to enterprise data and a report just for them. Ok, now Tammy and Sue in accounting need a similar report, but they can't see certain fields or need it arranged differently. So this crew builds another mde, on the same data. And on. And on. And on. Many of these people had 5 or 6 of these mde's, each for a different set of reports. And identically named mde's on different desktops connected to different data and had different report layouts. I came here after this had gone on for 3 years and there were--no exaggeration--hundreds of these f'n mde's. There names weren't even the same as what should've been the 'source' mdb's, some had no source mde that myself or the previous crew--which was cooperative, could find. How can you support and debug something when you can't get at the source code? It was a monstrous mess. Some of the stuff had to be reverse-engineered, some trashed and built from scratch. At least with VB there are plenty of source/version control solutions out there.
So anyway I spent a year and now have one app--yes Access, an mdb--that connects to the same data and this same app is has just a few reports, since most reports were on the same data, the grouping or controls might have been different or whatever, and dynamic report design is a huge help. Each user can only view objects I assign him with table-based security. I can change permissions without replacing the mdb, and none of this could be done efficiently with an mde. It's more secure, savvy users can no longer hit f11 and start fiddling with the data as they could and did before, any of our coders can go in with a dev password and debug it on the spot, etc etc.
So I've rambled too much, but I hope I've cleared it up a bit.
--Jim