This database has been opened read-only

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,

Post your answer or comment

comments powered by Disqus
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?

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 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?

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!!

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?


I'm getting the following message in Access and it's causing all kinds of headaches for the user. Any ideas why it's appearing and how to get rid of it?


Converted an Access 2003 app to 2010. I am running it as an .accde

When it runs I have a yellow info bar that says the database has been opened read-only. You can only change data in linked tables.

Well, duh, that is why I am using an .accde. Can I get rid of this message?

When I exit the app I get a message box that says A problem occurred with removal of personal information from this file. Some personal information may not have been removed.

What info?

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'.


If have posted this quistion once before without finding any solution. I hope there is someone out there who can help - this is realy giving me a hard time.

I trie to do a simple code in Access 2000 :

Docmd.TransferText acExportMerge,, "tablename", "c:filename.doc", True

I keep getting the error :

Cannot update. Database or object is read-only. The runtime error is '3027'

I have tried to do acExportDelim instead but that gives me the same answer.

What am I doing wrong here. Do I miss something - maybe in my installation ?????????????????

I have done this ofen in Access 97 - and it still works fine in Access 97 on the same machine ??.
What I'm trying to do is making a file with customer and a contact information. Thereafter I open a Word document with a macro that automaticaly merge with this file.
Is there another way to this ??

[This message has been edited by Romanov (edited 01-06-2002).]

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

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.

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?


All right, this might look like a typical situation where the front end of my database is not placed in a trusted location, but I afraid I am well past that.

I have a 2010 db with a fe and be. The be is on a network. This is version 3 for this db.

While I develop the db I have the fe in a projects folder in my C drive, but the be stays on the network. The fe development folder is listed in the trusted location and the db opens fine. No problem connecting to the be and no error messages.

When I am ready to create the install files I move the new fe to a new folder, which is not listed in the trusted locations. Then I convert the fe to accde. In spite of the fe not being in a trusted location, the db opens fine without any error message.

The install program then creates the install executable so I can send the file to other people, but before sending it to anyone I run one last test; I run the install on my computer. The install saves the fe in the access default folder (C:Program files(x86)Microsoft Office....) which is listed in the trusted location. It then creates a shortcut with the switch /Runtime.

The problem comes when running this fe; I get the "This database has opened as read-only. To make design changes Save As ....." The database actually opens up fine and I can enter data and it is saved in the be, however the message keeps showing up every time the db is opened.




I'm having an intermittent problem with the back-end of my database.

On an intermittent basis, the back-end tables will become read-only. This only happens when the back-end is located on a network share.

It isn't a permissions issue because the problem occurs only intermittently when logged in as the same user.

If I open the back-end database on its own and then the front-end client (on the local drive) this problem goes away.

Once the back-end has been made 'read-only', I have to open it on its own and close it again to make the tables editable.

Any ideas?


I'm trying remove actual record by this VB code:
Private Sub Command41_Click()
On Error GoTo Err_EditDelBox_Click
Dim rs As Recordset
Dim strBMark As String
Set rs = Forms!Media.Form.RecordsetClone
With rs
Do Until .EOF
End With
DoCmd.SetWarnings False
RunCommand acCmdDeleteRecord
DoCmd.SetWarnings True
Exit Sub
MsgBox Err.Description
Resume Exit_EditDelBox_Click
End Sub

After click I get error message Cannot update database or object is read-only. And record isn't been removed. Well I founded this script on internet.... I'm really not good in VB.

But problem could be somewhere else. I opened form by macro and I couldn't fill some fields in form. It looks like that form is really locked (but subforms are OK). I just used simple macro "OpenForm" and set only Name of form to be opened.
Could anybody helps?

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, 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 run an Access 2000 database over a network with five pcs with different operating systems. On two of the machines which are running Windows 7, the database opens read only. The database is split and I am unable to link the back end tables due to the read only situation. Any help would be greatly appreciated.

I create a front end and back end that resides on the lan. Front has everything besides the table which resides on the back end. Front ends table are linked to the backend. I have two computer that i am testing it on. Both of them runs Access 2003 runtime and windows has been update to the latest version, both xp machine aswell.Both has user right to read and write to that directory on the lan. Ldr exist when either of them uses access file. The strange thing is when i run a command to copy some data from one table to another one. one of the machine give me the following error "3027 Cannot Update. database or object is read only". While on the other machine it runs flawless. Another weird thing is if i modified some values in table by using forms it works great on both so i am a bit clueless where the problems is. its seems my problem is copying from one table to another. i dont have problem modyfing one table. Here is the code i use to that halt my ms access database.

Dim dbs As Database, rsProposal As Recordset, TES As String, stdocname As String, stLinkCriteria As String


If TES = DLookup("TESID", "Proposals", "TESID =" & "'" & TES & "'") Then
MsgBox "Proposal Already Exists for TES ID: " & vbCrLf & _
" " & TES, vbOKOnly, "Proposal Already Exists"
GoTo Image264_Click_Exit
If MsgBox("Do You Really Want to Create" & vbCrLf & "a New Proposal for TES ID " & vbCrLf & " " & TES & " ?", 289, "Create New Proposal?") = vbOK Then
Set dbs = CurrentDb
Set rsProposal = dbs.OpenRecordset("Proposals")
With rsProposal
![Long_Desc] = Me![Description]
![Short_Desc] = Me![Opportunity]
![Dest_Site] = Me![Install Site]
![End_User] = Me![Contractor/Purchaser Name]
![Date_Due] = Me![Proposal Due Date]
![Date_Completed] = Me![Close Date]
![Status] = Me![Status]
Set rsProposal = Nothing
Set dbs = Nothing
End With
stLinkCriteria = "[TESID] = " & "'" & TES & "'"
stdocname = "Form Prop - Detail"
DoCmd.OpenForm stdocname, , , stLinkCriteria
DoCmd.Close acForm, "Form TES - Detail"
End If
End If

When importing a text file, Import Text Wizard comes up with Error 3027 i.e.

Cannot Update. Database or object is read-only.

The file that I am trying to import is NOT read-only.

Has anyone come across this before?

Not finding an answer? Try a Google search.