I have a Access database split front end Mde and backend
mdb in a network environment, with about 30 workstations
that can run it using Access runtime. Most of these are
data entry at a low level of input.
The front end is presently 62.3 MB and the back end is
39.6 MB.
Jeff also zeroed in on this. That sounds very large.
I have a database with the following stats:
total lines of code = 27369
number of Forms = 162
number of Reports = 73
number of modules = 23
number of Queries = 181
The number of tables is 55, but then since it is split then that don't
matter.
In access 2003, the above as a mdb is 8 megs in size. When I create a mde
for the front end (and you REALLY should use a mde for the front end), the
file size drops down to 6.7 megs. In fact, I can actually zip the whole
thing on to ONE floppy disk with WinZip.
Considering the number of forms, reports and code in the above, and the mde
is only in the 6 megs range, I would serious look into your front end size.
It is certainly possible that your application is 10 times the size as
above, but then we would be talking about an application with 1600 forms,
and 1/4 million lines of code.
I would likely soon
start having difficulty because of the number of users and
the size of the database.
Questions:
1. Is this true?
When you say 30 workstations. Do you mean as a general rule you have 30
users working at the same time? ms-access will certainly handle that many
users, but I would certainly be moving things to sql server with that many
users.
2. What size is critical?
By size, do you mean database size, or number of users? You can have a VERY
small database, but with 60 users, you are pushing things. We see some
people complaining in this news group that 1, or 2 users is too slow. So,
the number of users is often going to be based on how well the application
and the network and the workstations are setup. I mean, if access is too
slow for some people with 1 user...how you going to get 30 users?
I think the real important thing is ask how much work gets lost if the
database is damaged? (likely, you are talking about 1 day to the previous
backup). With 3 users, and loss of a 1/2 day might not be too bad. You loose
the work of 30 people, and you are talking about a month of work being lost.
It becomes VERY easy to justify moving the back end data to sql server when
you reach 30 users.
I have had someone in the Microsoft training field
indicate that changing to SQL is not necessary and is or
can be complicated.
Necessary and complication are two separate issues. sql server is FAR FAR
easier to learn then is ms-access. Sql server does not have much of a
programming language (t-sql). Sql server has no forms design package. Sql
server has no reports design package. In fact, about all you an do with sql
server is create some tables, and create some queries. How hard can that be?
Since all that sql server is a box with some tables and sql, then you are
not talking about much. If your sql skills are quite good from using
ms-access, then using sql server is nothing really compared to ms-access.
Questions:
1. Is it difficult to change the database to SQL?
You mean sql server (you already been using tons of sql in ms-access.
Ms-access uses sql everywhere anyway). No, it is not hard, but you do have
to learn some of the ins and outs of doing this.
2. Should I keep Access as the front end with the SQL
backend?
As mentioned, sql server cannot create forms, sql cannot create reports. In
fact, sql server can't create any of the UI. This is why I said that sql
server is easy to learn, as it don' do very much. So, you have to write the
front end in something. That front end can be c++, VB, or ms-access.
ms-access just like c++ is simply a development tool (it is not a database).
So, if you already have a application written and running in ms-access, then
it seems to me to be a good idea to continue to keep the application (why
re-write it? What development tool did you have in mind?).
3. Will the change require a lot of programming?
Much will depend on how good your designs are now. However, 90% or more of
your code will work as is.
(Someone
suggested that front end design should be done in Visual
Basic.)?
Why? ms-access uses the same compiler and actually even using the SAME
programming language as VB. I see little, or no advantage of re-writing your
application to VB.
4. How can I prepare for this move?
Well, start learning and playing with sql server. You do know that a free
version of sql server is included on the office cd for use with ms-access?
(the last 3 versions 2000, 2002, 2003 have included the desktop version sql
server for ms-access). So, sql server is given away for free.
You can also read some articles:
http://support.microsoft.com/default.aspx?scid=kb;en-us;175619&Product=acc
ACC2000: "Access 2000 Upsizing Tools" White Paper Available in Download
Center
http://support.microsoft.com/?id=241743
ACC2002: "Access 2002 Upsizing Tools" White Paper Available in Download
Center
http://support.microsoft.com/?id=294407
ACC2000: Optimizing for Client/Server Performance (odbc)
http://support.microsoft.com/?id=208858
ACC: "Upsizing to Microsoft SQL Server" White Paper Available in Download
Center (a95, and a97)
http://support.microsoft.com/?id=175619
HOW TO: Convert an Access Database to SQL Server (a97,a2000)
http://support.microsoft.com/?id=237980
ACC: Choosing Database Tools White Paper Available in Download Cente
The Choose.exe file contains a document called "Choosing the Right Database
Tools" that discusses Microsoft's database products: Microsoft Access,
Microsoft FoxPro, Microsoft SQL Server, Microsoft Visual Basic, and Open
Database Connectivity (ODBC). Use this document to decide which database
tool is right for you.
http://support.microsoft.com/?id=128384
ACC: Tips for Optimizing Queries on Attached SQL Tables
http://support.microsoft.com/?id=99321