I have database for my desktop application, a billing application. I want that database shared so it can be opened by multiple users, but I currently get an error message like "database has been opened exclusively by another user or you not have permission".

What should I do to resolve this?

  • 3
    Did you search the net for solutions? There are many results in Google for the error message you mention. Have you discovered if it is a permission error or an exclusive lock error, or both? – Tony Jun 27 '11 at 10:01
  • We usually solve this by moving away from Jet databases. – Ignacio Vazquez-Abrams Jun 27 '11 at 15:01
  • What kind of database is it? MsAccess? – slotishtype Jun 27 '11 at 15:01
  • There is nothing inherent in Jet/ACE that causes this error. It's a configuration problem, nothing more, nothing less. – David W. Fenton Jun 28 '11 at 21:11
  • @Tony... there isn't an easy solution to this. – James Mertz Jul 18 '11 at 20:50

See the "Splitting your app into a front end and back end Tips" page for more info.


If this database is an Access Database, then try "splitting" it in 2. Have a FRONT END (FE) which contains all the Forms, coding & logic. Then have a BACK END (BE) which contains nothing but the Tables & Data, then link the Tables at run-time. This will definately stop the error that you are getting.

  • This will ONLY work if the file is accessible AT ALL TIMES via a network drive or share point server connection. – James Mertz Jul 18 '11 at 20:51
  • It should also be mentioned that a COPY of each 'front end' should be given to each individual. – James Mertz Jul 18 '11 at 20:54

To make your database accessible to multiple users you need to do three things in all:

  • Convert your data into an earlier version format, then you can access the user level and create multiple accounts.
  • Split your data into front end and back end, then use linking tables
  • Export your data into MySQL server
  • Build a small VB program and change your database's VBA settings

Taking something similar what Senoc26 has, You can push all of your data to MySQL or MS SQL for little to no cost. These database servers are meant to handle multiple connections at the same time to help prevent corruption. You would then use an ODBC connector and link the tables from your MS Access front end to the databases. Each person would have a copy of the MS Access database on their computer and would all connect to one centralized database.

  • Why go to the extra effort when splitting the database will be sufficient? Also this may not be possible if SQL Server or MYySQL aren't available on the network. – Tony Toews Jul 18 '11 at 20:12
  • By migrating the data to a MySQL server, you will be able to not only back up your database on a schedule, but you're also putting it on a platform that is mean to handle several users at the same time. Do it right or don't do it at all imo. – kobaltz Jul 19 '11 at 0:40
  • Putting the database on MySQL is no guarantee backup will be done. You're assuming there is an IT department with folks involved who monitor such. Access handles multiple users just fine. I've had systems running just fine with 25 users. – Tony Toews Jul 19 '11 at 1:15
  • Your comment "Do it right or don't do it at all" is inappropriate. – Tony Toews Jul 19 '11 at 3:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy