Bingo said:
Does developing the front-end in visual basic (standalone) solve any
of this? Or does it create different but similar problems?
In fact, any windows developer has to deal with what is known as dll hell.
It simply means that when you deploy your application, and use some library
code, you HOPE that this library code is the same on the target pc. You can
most certainly tell VB to include library code when you deploy, but you
still have to hope that another application does not come along and also
include (and thus deploy) and change one of those libraries. So, this
problem of libraries and references is common to all windows development.
So, while developing in VB is certainly much better, there is STILL the
problem of references and libraries. Dealing with this problem is what ANY
windows developer has to be aware of. So, note how a few years ago I was
VERY frustrated. Then for 3 years straight I NEVER had a problem with any
deployment.
Further, the general consensus in reading about VB applications is that a
VERY LARGE number of VB developers (we are talking VB here, not ms-access
developers!) recommend early binding. In fact, a few months ago when doing
some reading on this subject, I was quite shocked to find a very large
portion of developers recommending early binding, and NEVER was a
distinction made for automation code for things like office. Obviously, this
problem of automation is less in VB...but still does exist.
Without question for library code that YOU develop in VB or c++, then early
binding is to be used. However, for anything like office automaton (ie:
launching word, Excel, etc), then the performance hit is so small as to not
even be a issue. I mean, so what if you add .1 second to the loading of
word. You are not loading word 1000 times. If you were calling, or loading
some library code 1000 times, then that .1 second penalty becomes a 100
seconds, and that is a HUGE performance hit for application.
Thus, most, if not all VB developers will tell you to use early binding. The
real issue here is using early binding for application automation (to a
particular version of word, or Outlook). Since in VB you can, and do write
your own library code and then use a reference to that code, then early
binding is the theme of the day, and most VB developers would not give this
issue a 2nd thought. However, in ms-access we RARELY are wring a library of
code, and then setting a reference to it. Thus, early binding to ms-access
developers is usually not an issue. Further, early binding for office
automaton is simply silly. I mean, setting a reference to a particular
version of word on your pc, and then moving the code to a pc that does not
have word, or is running a different version of word will likely break your
application. I mean, it is far better to accept the 1/10th of a second delay
loading of word by using late binding, and have your code work on all pc's
(that 1/10th of second is just not worth it). Somewhere along the way, this
opinion of VB developers needs to be clarified.
So, yes, using VB would reduce this references problem, but not by much, and
if you have some experience, and learn what to avoid, then VB will not offer
that much more then what you got with ms-access.
However, VB is a LOT better from a distribution point of view, and one MAIN
REASON is that VB is NOT tied to a particular version of office like
ms-access is. ms-access strength is that it is tied to office, and is part
of office. This fact of being part of office is also its downfall when
distributing a software package. For wide distribution, and distribution to
pc's where you don't have control of the install, then VB is better.
There is LARGE number of problems you need to be aware of (or shall I say
avoid) when trying to run a ms-access application on a pc that has a
different version of ms-access! You can however purchase the developers
edition of office, and create a installing package from ms-access. The
installer does have provisions for including things like JET etc. However,
there still is problems when installing to pc's that already have office
installed. The solution for that is then to purchase some scripts from
www.sagekey.com
The above talk about the package and deployment, and use of the developers
edition of office is another whole ball of wax, but I did want you to be
aware of this fact. Setting up a stand alone program that can be installed
on a pc can be a very large amount of work. Further, to use the developers
edition of ms-access, then you need to create things like your own menu
system etc. I would only recommend the developers edition after you learned
the ins and outs of ms-access, and what works, and what does not work.