"READ-ONLY This database has been opened read-only.

I will try to keep this short. The error message is "READ-ONLY - This database has been opened read-only. You can only change data in linked tables. To make design changes, save a copy of the database."

I have several user that have a FE MDB on their machines. They share a BE MBD database. All have Various versions of MSAccess. The users that have Full A2002-2007 do not have this problem. The users that have A2007 runtime are having a problem. When they start the database they see the message above. They can get to all the reports and browse screens but when they try to get to a update screen. The additional message "Execution of this application has stoped due to a runtime error: The application shuts down.

I think it is a problem with the runtime. I tested this by running the program on my box and several others with full versions of A2002-2007 it works fine. Then I install the program on a box without MSAccess. Signed on as my id as a administrator on the machine. Ran the program and got the same error.

I have searched the WEB and found several posts. But all have not paned out. Tried open as share. full access rights to the files folders. make sure the file is not read only. I am stumped. Any ideas out there?

Post your answer or comment

comments powered by Disqus
I have an Access 2003 database that I converted to 2007 and created an mde (accde in 07). We use a command string to call our mdes which uses the runtime. The read-only parameter is used within the string.

"C:Program FilesMicrosoft OfficeOffice12MsAccess.exe" /runtime /ro "SptsApp2APPS$LMSLmsDevNew.accde"

The problem is that when 2007 opens the accde it automatically puts a message bar at the top.

"READ-ONLY This database has been opened read-only. You can only change data in linked tables. To make design changes, save a copy of the database."

There is a button on the message bar that allows anyone to save a copy.
Can anyone tell me how to disable this message bar?

Is it possible, after a read-only Access database has been opened, to unset read-only with VBA so that changes can be made to it? Thanks.

How can one tell if a database has been opened or not?

How can one tell if a database has been opened or not; i am creating a compact utility and need to know if a database is open or not;

Any help?

Thank you!
Llyal Gordon

I have a database in Access 2007, converted from 2003, and am trying to run it with a Vista platform. I have added its folder to the trusted sites and therefore do not get the "stop all macros" message. But.....

(BTW, I have very successfully executed this 2007 database on an XP platform but when I attempt it on a Vista platform it will not work.)

Upon execution, I get the infamous error message "Read Only This database has been opened read-only. You can only change data in linked tables......."

I am not trying to design just run, changing data in the linked tables. So I ignore the message but am NOT able to change any data in linked tables. I must run it in the original folder and therefore do not want to copy it to some other folder. ????

I am using the built-in switchboard an am able to navigate through it without difficulty. However, when I try to view my main edit screen, it appears totally blank except for the specified background.

I have search the internet without success to resolve this problem. Can anyone point me to a solution?

Thanks for ANY help someone can supply!!

I'm running an mdb in 2007 and it is running in read-only mode. The read-only mdb has attached tables in several external mdbs on the network. I think I have determined that the read-only issue is being caused by the network folders that contain the external mdbs.

I am not a network guru, nor do I fully understand 2007 "Trusted" settings. But, as a test I moved one external mdb to a folder that was successfully functioning with a completely different 2007 application. While in that other folder, I successfully ran an update query on a table in that moved mdb. Before I moved it, the update query failed (read-only error).

To check my theory, I created a brand new test accdb with attached tables in one of the working folders and one of the non-working folders and got the same result. The table in the working folder updated, while the table in the non-working folder failed.

Can someone explain how, where, why, etc. to correct the settings on these other folders or within Access to eliminate this read-only issue?

Thank you very much,

Hi, all--

I see a similar problem to mine has been discussed but the specifics are different.

A user of my database is getting the "Readonly: This database has been opened read only." and then goes on about only being able to change data to linked tables and saving new copy to do more. I am not able to make changes in queries or other structural things.

The use has Access 2007 and the database is a 2007 database. The application is on the user's hard drive although the linked tables are on a shared network drive. I have put all the folders in question in the trusted locations area.

This is a new user who replace a previous employee who did not have this problem. She has full rights to the shared folder.

Any ideas?



I looked for this via the search tool and found some things sort of related, but different enough where the solution wasn't clear (to me anyway), so I'd be most grateful if someone could find a moment to help a newbie.

I created a data entry tool that's being sent to multiple users, simialr to at least a dozen or so other ones I've done. But this time, I've got a user who, the first time she tried to enter any value into the opening form, gets a message of "Cannot update database or object is read only". This database has been tested on multiple computers and worked fine...she checked the properties tab and it is not set to read-only. Any ideas? Thanks in advance...

Is there any way that one can count the number of times that their database has been opened, or number of times a button has been clicked? Sort of like a 'Hit Counter'.


Hi All,

Access 2003.

I was wondering if there is a way to have the database set up so that only one person can use it at a time


If someone has it opened, to make the database read only?

The reason behind this is because my database keeps track of purchase orders and users are only allowed to spend up to 50,000 a year so that if two people were in the database at the same time, under the same acct, if one puts it at 50,000, and the other does the same, the account will be over 50,000 and the users might be unsure why.

I have an MS Access 2010 database with a module called bas This module reads the fields on a Microsoft Word document and then the data is loaded to a linked SQL Server 2008 R2 table. I am currently desigining this module so I am the only user using this database. I open the MS Access database, open the code for the module and click on Debug>Run. I get the following error:
-2147467259: The Database has been placed in a state by user ‘Admin’ on machine ‘JITC-PC’ that prevents it from being opened or locked.
How do I get rid of this error? Does any one have a solution? I have searched the Internet all week but haven't found a solution that works.

Here is my code:

Sub GetWordData()
Dim appWord As Word.Application
Dim doc As Word.Document
Dim cnn As New ADODB.Connection
Dim cnn2 As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim rst2 As New ADODB.Recordset
Dim strDocName As String
Dim blnQuitWord As Boolean

On Error GoTo ErrorHandling

strDocName = "JITC-PCUsersSharonMy DocumentsGEOINT RepositoryRequestsGEOINT_rep_req_form20111109 class.doc"
Set appWord = GetObject(, "Word.Application")
Set doc = appWord.Documents.Open(strDocName)

cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=JITC-PCUsersSharonDesktopDEVELOPMENT.mdb"

' Open Requester table to load
rst.Open "dbo_Requester", cnn, adOpenKeyset, adLockOptimistic

With rst
!Requester_Organization = doc.FormFields("Req_Org").result
End With


If blnQuitWord Then appWord.Quit
MsgBox "Requestor Data Imported!"

Set rst = Nothing
Set cnn = Nothing
Set doc = Nothing
Set appWord = Nothing

Exit Sub

Select Case Err
Case -2147022986, 429
Set appWord = CreateObject("Word.Application")
blnQuitWord = True
Resume Next
Case 5121, 5174
MsgBox "You must select a valid Word document. " _
& "No Data Imported.", vbOKOnly, _
"Word Document Not Found"
Case 5941
MsgBox "This Field is not found in the Word Document." _
& "No Data Imported.", vbOKOnly, _
"Fields not found in the Word Document"
Case Else
MsgBox Err & ": " & Err.Description
End Select
GoTo Cleanup

End Sub

Thank you for any help you can give me.

Sharon Chapman

Hi all,

I normally install 2007 RT version for client who do not have Access in order to run my 2003 db app.
However I recently found that on some machines I get the "the database has been opened in read only bhla bhla bhla" error.
Mostly Clients running Vista
I got past this by pasting the FE file on the user's desktop where it then opens 100%.
As soon as I move it to any other folder (and create a desktop shortcut) it gives me the read only error.

At first I thought it is a 2003 - 2007 RT issue, but since then I found the same issue running 2003 on full 2007 or 2007 on full 2007.

In my mind this boils down to folder permissions.
But I even tried dumping the FE file in the ACCWIZ folder.
I also tried setting the registry to allow other folders to be "excepted" by Access 2007.

I ended up with either keeping the full FE file on the desktop or installing 2003 RT.

Is this simply a Vista issue?


Hello all,
I have inherited as part of my job a small database that writes contracts, addendums and invoices. ONE contract will normally have only ONE addemdum, so the fields for these two documents are all in the same table - makes sense. Except, our people often like to have both the contract and addendum open at the same time (the contract open for reference as they are composing the addendum). If they edit the contract, compose the addendum and then see one more thing that needs editing in the contract - bam! The dreaded "This record has been changed by another user" message. The other user is simply the second form causing the user to conflict with themselves. I would like to eliminate the possiblility of this message cropping us, since selecting "save record" once caused a major lock up (since both forms were open?).

With my fledgling Access skills, the ways I can think of to do this are:
1) save record command on the "on click" for the buttons that open and close the forms somehow? I tried this once and Access got hung up - maybe I put the code in the wrong place?
2) use VBA to open and close the forms as they pass the record off to one another, but I don't want to do this - I really want the users to be able to have both forms open with impunity!
3) dirty=false? I know of this, but not sure how to implement it, or if it would work with both forms open.
4) ISOLATE all of the fields unique to the addendum in a separate table and create a one to one relationship with the contract table, LOCKING all of the fields on the addendum that are simply showing related contract info so users can write only in the fields unique to the new addendum table. I know that one to one is used rarely, but in this case, maybe it's the way to go? Any thoughts would be appreciated!

I am creating a database in Access 2003 for multi-users. However, when my co-worker and I both try to open it one of us receives the following error:

("The database has been placed in a state by user on machine that prevents it from being opened or locked")

I have done some research on this error and seen that a lot of people suggest splitting the db to a FE and BE. I have created db's like that in Access 97 (we are a bit behind with technology unfotunately) and everyone can get into them just fine but I think that is more due to the security .mdw file we have set up with that Access 97 db.

All the threads I read about the above current error in 2003 say that you then have to place the FE copy on all users PCs. But I am confused as to how they will then get any changes or updates to the db if they don't constantly add the new FE to their PCs?!?!!?

Any assistance would be much appreciated as our deadline for creating this db is nearing! Is there another way around this error?



Everyone know this error? the database has been placed in state by user "Admin"!

We are using a shared database in Access 2003 that is still in Access 2000
format. When more than one user has the database open (by using the vb.net), the following error
message appears "The
database has been placed in a state by user 'Admin' on machine XXXXX that
prevents it from being opened or locked."

How to slove this error? please help! Urgent!

I have this unique problem popping up at out organization with has Access database and forms.
There is is this one computer which has Ms Access 2007 installed on it and the rest of the three pc's have access 2003 installed on it.
We have this one database on the shared network which all of these pc's can access. But there is one catch: If the pc with MsAccess 2007 opens the database first then no other pc can open the database after that giving out the error as "The database has been placed in a state by user “Admin” on machine that prevents it from being opened or locked". However if the pc's with access 2003 opens the database first then everyone CAN open the database after that (including the one which has access 2007 on it). So I really don't know what the exact problem is. Can anybody please help me out on this??? Will appreciate any help on this.

I was in the process of copying a form from one database to another (same database just in different locations). I copied one form over but the next form I tried to copy got this message:
Quote: The database has been placed in a state by user 'Admin' on machine 'O43FO1NC186124' that prevents it from being opened or locked. I tried closing the database but I still get this message.

Other than rebooting my machine, does anybody have any suggestions on how to get out of this 'state'? Any suggestions on how to prevent it in the first place?


I keep getting the error message. "The database has been placed in a state by user 'Admin' that prevents it from being opened or locked." This isn't a multi user system and I haven't placed any code in there that should lock it so where is this error coming from? Anybody have any clue?

I am getting the following error while connecting to my database using connection object's open method.

"The database has been placed in a state by user Admin on machine USER that prevents it from being opened or locked."

When I serach in the MSDN I got the following information.

It is a known BUG in Access 2000. This error will occur while we try to open the second instance of the database where a form has a control which refer to another form as sub form.

My database is also having a form which refer to another form. I am getting this error when one of the form is open either in deign or form view.

Here the main problem is

1. I am using Office XP but my database is in the Access 2000 format. I thought if I convert this into Access 2002 format the problem would be solved. But that is not happening even after converting.

2. It is given in the MSDN help to overcome this problem that we have to download and install the SR1 or SR1a. But I could not install the service pack SR1/SR1a as I am using using Office XP. (Installation process says it is not finidng any Access 2000 in the PC)

Can some one give me a solution to overcome this issue?



Everyone know this error? the database has been placed in state by user "Admin"!

We are using a shared database in Access 2003 that is still in Access 2000
format. When more than one user has the database open (by using vb.net), the following error
message appears. "The
database has been placed in a state by user 'Admin' on machine XXXXX that
prevents it from being opened or locked."

How to slove this error? please help!

My following code as below:

Public Function callvalue(ByVal strcallvalue As String)

Dim i As Integer

Dim sql As String
Dim sql2 As String
'Dim i As Integer
Dim strweekday As Integer

' sql = "select emp.empno, emp.empName, emp.empSection,emp.empCitizen, emp.empPosition"
sql = "select (emp.Daily* 26) as monthly, emp.Daily, emp.Incentive, (emp.Daily/8) as AverageHr "
sql = sql + " from emp where emp.empno='" & strcallvalue & "' and emp.empDelete'2' and emp.empGender= 'Male' and ((emp.empPosition = 'Operator') or (emp.empPosition = 'Repacker')) and empUpdate

I have 2 separate forms. When i try to update the database using the 2nd form, I get "The database has been placed in a state by user 'Admin' on machine 'MAYS' that prevents it from being opened or locked.

Each form has the following VBA code:

Set wrkJet = CreateWorkspace("NewJetWorkspace", _
"admin", "", dbUseJet)
Set db = wrkJet.OpenDatabase("Youth Conference.mdb")

.(some insert and update statements are here)

Can someone please help!



I have a database which has a front end on 6 local machines, and the data tables sat on the server.

I have just started getting the error message "database has been placed in a state of admin by...." as i am editing some reports which need to be updated, which live in the local front end on my machine. I was then going to transfer them onto everyone elses local front ends.

it says the DB has been placed in a state of admin by machine other than my own. i have checked for a lock on that machine, and on the tables on the server, but have found nothing. I have also rebooted my machine, and the machine in question to no avail.

Any ideas what this could be?


Hi all

I've got a form that shows existing records. The user clicks a button which opens a form allowing the shown record to be edited. When changes have been made, the user clicks save, which saves the data and closes the edit form.

Unfortunately, when the user clicks save, a dialog pops up:

Write Conflict
This record has been changed by another user since you started editing it. If you save the record you will overwrite the changes the other user made.
Copying the changes to the clipboard will let you look at the values the other user entered, and then paste your changes back in if you decide to make changes.

The dialog has 'Save Record', 'Copy to Clipboard', and 'Drop Changes' buttons. Save Record is always disabled.

How do I stop this?

I have tried to shut the form that opens the Edit form, so that it has to be reopened (with the new data) after the user has made changes, but to no avail.

Any thoughts gladly appreciated



Everything works fine on my harddrive, but when I put it on my company server, problems arose. I'm using Access 2010. It asks two things on the top when I open it, "Enable Content" and "This database has been opened read-only. You can only make changes in linked tables. To make design changes, Save a copy." I always Enable Content and I don't want to make design changes, I'm just trying to input a date, project, and hours. The combobox works (I guess because it's linked to a table), but how would I get the others to work. I'm using an update query to put the data into my main table, then run reports off it. Any ideas?

Upon close of my form I am gettign this error "This record has been changed by another user since you started editing it..." Now I know why I am getting it, but cant figure out a way around not receiving this message. Let me explain...

I am using the QuickBooks SDK to connect my Access db to my Quickbooks file. I open my form and enter new data. In the save and close button I run several procedures that update this "new" information into Quickbooks. In a short explination, after the Quickbooks update, quickbooks sends back information to Access. One bit of this information is an edit sequence number for the customer updated/added in Quickbooks. This number is essential to me if I ever need to update or edit this same customer again, so I then run an update query in Acess to update the table with this new edit sequence number. All these updates and procedures are preformed on the same button click and ALL before the close event. The problem is that the table being updated is the same table my form is based on, so access is seeing that the record has changed since I opened it, hence throwing this error/question dialog.

Ok, that was a mouth full and if you are still with me is there any way to tell access to just ignore this question. There is really no way (at lease no easy way) around NOT updating the same table my form is based on BEFORE closing my form. Any suggestions??? More info can be provided if I was unclear or too confusing.

Not finding an answer? Try a Google search.