Woody, to be honest the argument should be the other way around. The only
thing Access has in its favor is that it's 'easier'. That is easier to do a
lot of common tasks. It's certainly not easier to write a multithreaded
windows service with Access for instance. Let me highlight a few
1) You can use VB.NET to write all sorts of apps, web, compact framework and
desktop. When I first started with .NET at my last company, I had a manager
that had heard .NET was only for Web stuff. He was a complete idiot but he
ran around for a month trying to stop the move to .NET b/c we mainly wrote
desktop apps. The rumor started somewhere but it's defintiely not true. You
can use VB.NET classes in web services, web applications(which are much
different from web services), destkop app and PDA apps. The code can be
reused everywhere. You can also mix VB.NET and C# in the same solution so
you don't have to limit yourself to hiring people with only one of the
skills
2) Access isn't a real database. I know that sounds harsh but it isn't.
This is a client/server/n-tier world. Access thrives in a single user
environment. Doing point in time restores is impossible for any practical
perspective. Access has very limited security. It doesn't support real
stored procedures. It doesn't have a programmatic langugage syntax like
T-SQL or PL/SQL and its implementation of SQL is ghastly. MSDE edition of
Sql Server is free, has the same storage restrictions as access, allows you
to easily upsize, provides better security, better performance, real backup
and recovery etc etc etc.
3) VB.NET is a real object oriented language. All of the crap associated
with Weak Typing goes away (well, as long as you use Option Strict which
should be a Law IMHO).
4) ADO.NET walks all over DAO. You can use data from all different data
sources and send data all over the place. ADO.NET is so much more powerful
it's hard to even know where to start, then again the same holds with VB.NET
5) VB.NET (actually the .NET Framework's) security model is lightyears ahead
of access, even if you don't use MSDE (which will further cause a rift
between the two). You can implement security declaratively and do so at the
code level...it's so superior again it's hard to know where to start
6) The IDE and intellisense will make you 1000000 times more productive
7) The Base classes in .NET are far more developed than VBA
8) You can easily implement zero touch deployment with .NET and you don't
need everyone to have access installed on their computers
9) You won't get laughed at by all the other programmers
10) Your users won't be p/o'd all the time b/c you have to take down the DB
so you can repair and compact it.
This is but a smidgen of the reasons. Actually, it's easier to go the other
direction. Other than the fact that it's easier to build point and click
apps with Access (and even that is diminished) there's no reason. Access
isn't a language and as far as a database, it's horrible. VBA is fine, but
it's outdated. Wouldn't you rather use a modern programming language with
tons of support and examples, tons of books and an IDE that really helps
you? With MSDE in the winds, the demand for access is going to dwindle and
employment wise, you'll probably make 4-6 times what you will as an access
programmer if you take the time to get good at it. YOu also can do so many
things that can't be done with access, it'll be a lot more fun. MUCH MORE.
HTH,
Bill
--
W.G. Ryan, eMVP
http://forums.devbuzz.com/
http://www.knowdotnet.com/williamryan.html
http://www.msmvps.com/WilliamRyan/
http://www.devbuzz.com/content/zinc_personal_media_center_pg1.asp