0

Sometimes when a user tries to open a specific file, Access 2000 produces this message:

"The database has been placed in a state by user 'Admin' on machine '(whoever the user is)' that pevents it from being opened or locked."

The company I work for has the file located on the Printer public folder at \PRINTER\Public, and all users access the file by opening it from this location on their machines. There are a total of 15 users.

Does anyone know why this happens or, more importantly, how I can get this to NOT happen?

If it is helpful, I notice the user who is usually blocking access according to the error message is 'WOODY-PC', which is also a network folder.

Thanks in advance for the help in advance.

2 Answers 2

1

This happens because the database was simply never designed to be used like this.

Access 2000 (especially) should be used as a desktop application for a single user accessing a single database or multiple users using it in order to access a database server back end - such as SQL server.

There is no easy solution, but if you have 15 users, I am guess the company is growing - you should invest in your IT infrastructure and possibly at this point, I would recommend using a spare machine to install SQL (not sure Express allows 15 users?), then upgrade the Database to run on that.

This may take additional work, but it should be a scalable solution to push the business in to the future.

5
  • Er, you've left out an important Access usage scenario that works just fine, and that's multiple front ends linked to a single, shared back end with only data tables in it. That's bog-standard and can support dozens of simultaneous users (depending on a number of factors), with no need for a server back end. Nov 8, 2010 at 21:38
  • @David W Fenton - I sort of meant that in the second paragraph when I said Database Server back end - but I really see how it is not clear... Access is not really a server - That being said, Any company that can afford to have 15 employees, really should modernise a little... Nov 8, 2010 at 22:37
  • I agree with you Wil, but the owner (my boss) really isn't a reasonable type of guy. When faced with the choice of doing the thing that is smartest and the one that is the immediate cheapest, he always does the latter. Hopefully I can figure out a work around or a way to break him down. Thanks for the help!
    – user33750
    Nov 9, 2010 at 15:30
  • Just as an example, the guy won't even let me set up a server here because he doesn't want to pay for it. He thinks since things are working in the condition they are in now there is no reason to upgrade. How he has survived 10 years in business on virtually the same tech I'll never understand.
    – user33750
    Nov 9, 2010 at 15:32
  • But aren't you asking this question because things AREN'T working? Nov 9, 2010 at 22:00
1

You can't share an Access database like that.

The app should be split into front end (queries, forms, reports, etc. -- everything but tables) and back end (tables only), and the front end will have linked tables pointing to the back end.

Then each user gets an individual copy of the front end.

The back end (with the tables) stays on the file server in a location accessible (and writable) to all users (putting in the printers folder seems very odd, but is perhaps a clever way to store it on a server that otherwise has no user-writable shares that are accessible to all users).

Attempting to share front-end objects never works reliably in the long run (the error your getting is just the beginning), and can lead to all sorts of weird problems, and to corruption of the shared front-end database.

Many people object to this because they think it makes it harder to distribute updates to the application. It actually doesn't, because all you have to do is copy over top of the old front end with the updated one. This can be done any number of ways, and it's basically a triviality.

0

You must log in to answer this question.