I have an Access 2003 database with about 20 users. Typically no more than
three to five will be on at the same time. It is a replicated database with
user lever security. It is a split database and all users using the same
copy of the front end without problems.
We are switching to access 2007. I have the computers set to use the 2003
file format. If one user is on the copy of the database at a time things
are slower than 2003 but usable. As soon as a second user logs on to the
same copy the system becomes unusably slow.
The above problem is usually fixed by a persistent connection. This is
common question here.
So, #1 is to try a persistent connection. This and other performance things
to check is outlined here:
http://www.granite.ab.ca/access/performancefaq.htm
I see where it says each user should have his own front end. Come on, 20
copies of the front end to maintain? Doesn't seem preactical.
How do you install 20 copies of word then?
How do you install 20 copies of Excel then?
Hint:
Ask you IT department for the last 20 years why they been installed software
on EACH COMPUTER? Really, go ask them?
Here is some answers you get:
* The software now does not have to travel across the network each time it
is used. It would be a waste of network resources if applications such as
word etc. had to be loaded across the network and use up precious network
bandwidth. Remember, networks are MUCH MUCH MUCH slower then your hard disk
to load files. Remember, the network is a SHARED resource. If you have two
users on the network pulling data, then you have ONE HALF the amount of
resources available. You must treat your network with the utmost respect, as
it is a delicate and precious (limited) resource. When you have 4 people on
the same network, you have FOUR TIMES LESS THE performance. You MUST thus be
very careful. Imagine how slow things would be if all users loaded their
software from the network each time?
* If one user makes a change to their printer setup or just a general change
to their settings, they have their OWN copy of the application to play with,
and NOT interfere with other users on the network. Can you imagine two users
fighting over how their excel sheet should be laid out at the same time!!
* If a user's software crashes, then no other users are affected. Can you
imagine if word were to freeze up, or lock on your computer and everyone
else in the building also experienced a freeze up or lock up? Again, it
makes sense to install the application part on each pc as to ISOLATE
individual’s problems that might occur in the application. So, installing
software on each PC is a MUST DO from a reliability point of view. You don't
want to allow ONE user's problem to become the problem of everyone else.
This is again why we split a database in ms-access in multi-user mode
(otherwise you will get NO reliability).
I could add MANY more reasons to the above list, but suffice to say that it
makes a lot of sense to install the software on each computer. I don’t think
there are too many people that have trouble understanding the above
concepts. I bet if you ask your IT department, they have FOR YEARS AND YEARS
been installing software on each computer.
Why would you not do the same?
However, when it comes to ms-access, the above concepts for some strange
reason are complete ignored. Users all of a sudden get some type of freeze
in the brain, and all of a sudden compete ignore how they deployed software
on their computers for that last 15 years!
You can use many different kinds of tools to create software with. These
tools like c++, VB, and yes even ms-access are used to build forms (the user
interface part), and also write code. These forms + code are what we call an
application. It is this application part that you create that needs to be
installed on each computer. You always installed the word application on
your computer. So, now that YOU ARE writing software, why should you throw
out all of the ideas and concepts as to how software works on your computer?
You can use a software tool like VB to create a word processing application,
and once done, you will install that application on each computer. I should
point out that you can also use ms-access to create a word processor, or a
Pac man game. Make no mistake here; ms-access is a tool that allows you to
create software. After you create that software, you need to install that
software on EACH computer like you done with everything else you used.
It possible that you have people in your organization that CAN NOT
understand the difference between things like a word document, and that of
the word program. (on the other, if your people don't know the difference
between an application, then how the heck can they give advice and make
assumptions to deploy your software SO DIFFERENT then EVERY OTHER software
application the company has?
It turns out that a good number of systems administers and general users of
computers have NOT thought about this common concept in software. It is not
a hard concept to grasp that software has a data part + application part. In
most organizations, installing the software on EACH desktop computer is not
even given a second thought. So, if you want to use word, you install word
on EACH computer. If you want to use Excel, then again, it is common
knowledge, and common sense that you install the application on the
workstation. Often, you will share some documents on a server, and allow
users to open those documents. Note carefully how even in this case, the
software (application part) is STILL INSTALLED on the workstation. Sure, you
can put the DATA PART, or so called document part on a shared server folder.
However, you STILL installed the software part on each computer.
If 2003 would run fine like this why won't 2007. What changed?
Gee, perhaps 2007 takes more bandwidth? Perhaps the new machines have
different or more security settings that puts more stress on the network. I
likely think of 10,000 + things that are different. On the other hand, it
possible that you not installing the software on each computer?
When 2007 opens the program, it has to re-compile the code to run as
2007 compatible mode. If you open the program in 2003, then the code again
is fighting as to what version is trying to run the code. (of course this
not usually a problem since most IT departments install software on EACH
comptuer and advoid this problem.
As for updating your copies of word, Excel, or in this case the great
application you and your team of developers created, there are MANY ways to
update each users machine. I mean for example, how do you upgrade to the
next version of Excel?
Anyway, Tony has a great automatic program here that can keep each users
desktop updated to the latest version of your software application that you
developed and plan to install on each computer...right? You can find that
"free" utility here:
http://www.autofeupdater.com/