Could not update; currently locked

J

Jason

I have created a database in Access 2000 that is shared
between eight users, which worked great for a while. I a
now having problems in that when a user wants to add a
new record, the database freezes and an error message
appears "could not update; currently locked". The user
then needs to close the database down and reopen it. This
is happening several times a day, and is causing
problems. I've tried compact and repair, I've upgraded to
Access 2003 and converted the database to that format,
and I've even archived the database, copied it's
structure and started again with new records, but to no
avail. Is this something to do with the locking strategy,
(which I've left as the default)? If so, can anyone
recommend a better strategy to use in the user
environment that I have described? Thanks for any help.
..
 
J

Joseph Meehan

Jason said:
I have created a database in Access 2000 that is shared
between eight users, which worked great for a while. I a
now having problems in that when a user wants to add a
new record, the database freezes and an error message
appears "could not update; currently locked". The user
then needs to close the database down and reopen it. This
is happening several times a day, and is causing
problems. I've tried compact and repair, I've upgraded to
Access 2003 and converted the database to that format,
and I've even archived the database, copied it's
structure and started again with new records, but to no
avail. Is this something to do with the locking strategy,
(which I've left as the default)? If so, can anyone
recommend a better strategy to use in the user
environment that I have described? Thanks for any help.
.



First step, assuming you have not already done it is to split the
database.

Since you now have data on different machines and I am going to guess
that the data is not the same on each of those machines, you will need to
combine most, if not all of that data onto one copy of Access. This will be
complicated if the tables and data are not formatted exactly the same, For
example 123 in one data base may be text and it may be a number is a
different machine. One may use Three fields for a name FirstName, IM and
LastName and another may put it all in one field.

I suggest you start by deciding exactly how you want the final product
configured and then how you are going to get all that data into that one
database in the same format. Your final design may not be the same as any
of the existing designs.

Next you need to decide the split. What parts of the database will be
on the "server" and will be called the Back end database from now on and
which parts will be on each user's machine and will be called the front
ends. The back end should hold all data that is shared and may be changed
by the users. It should also contain all or most data that more than one
user will need access to and may be changed by you from time to time. Most
other data that does not change or that will only be used by that particular
user should be on the Back end databases on the users machines.

For example you may have all the sales made by a unit on the back end
along with the price list. The sales may been to be shared by everyone so
they all know what has been done or pending. The price list may not be a
field they will change, but you may need to change to assure everyone has
the same current price available.

Each individual machine may have something about your company like
addresses that does not change or even product descriptions etc. You may
want each user to be able to store personal information about customers like
their kids names or shared information about sports teams or you may want to
put this on the server so everyone will have this information.

This is an art form and a science to get this part of the planning
designed and will be an ongoing job and should include the users in the
planning.

Access works best if it does not need to move a lot of information over
the LAN which means static data is best kept on the front end databases.
Also kept on the front end machines will be most forms, reports queries etc.
This will allow the whole system to work faster and in some cases allow for
customization of some forms reports etc.

This may seem like a lot of work and off the point of the question you
were asking, but it is very important that this part of the job be done
first and right.

Next is the mechanics of setting up the back end on the server, dumping
in the data and putting the front end copies on each user's machines and
assuring that the links work. Access has a built in database splitter that
may make this part of the job (moving from a single database with all the
data and forms etc. to two databases a front end and a back end.) easier.
Look under the Tools menu for it.

You may also want to look into user level security to protect the
database and data before you finish.

I suggest you start by reading
http://support.microsoft.com/default.aspx?scid=kb;[LN];207793

Access security is a great feature, but it is, by nature a complex product
with a very steep learning curve. Properly used it offers very safe
versatile protection and control. However a simple mistake can lock
everyone including God out.

Practice on some copies to make sure you know what you are doing.

Splitting a database can be a big job, but done right everyone will
thank you and wonder how they did their jobs without it.

Note: back ups become more important here. If you LAN does not support
automatic backups you should provide a method of backing up the data, even
if that means you do it manually.

Second step involves the users. Make sure no one is opening the
database in exclusive mode. More likely here make sure no one is just
shutting off their computer while access is still running.

As a final suggestion, consider batch processing. That is each user
collects the their new records in a temporary table on their front end
database and at the end of their day or at some pre-defined time, they
process records via an append query to the back end table.
 
J

Jason

Hi Joseph,
Thank you very much for your suggestions. I hadn't split
the database previously so that is the first thing I
shall be trying.
Thanks again for your help.
Jason
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top