PRB: Must Open MDB on Read-Only Media with adShareDenyWrite

Article translations Article translations
Article ID: 195475 - View products that this article applies to.
This article was previously published under Q195475
Expand all | Collapse all

SYMPTOMS

Opening the connection on a read-only Microsoft Access Database (.mdb file on a CD-ROM, a floppy disk that is write protected, or a hard disk that is read-only to the user, and so forth) with the following code causes an error to occur. The following code opens a connection on a Microsoft Access database file on a CD-ROM:
   Dim con as new ADODB.Connection
   con.Provider = "Microsoft.Jet.Oledb.3.51"
   con.Open "Data Source=E:\testdb.mdb"
				
It causes the following error:
The Microsoft Jet database engine cannot open the file E:\testdb.mdb. It is already opened exclusively by another user, or you need permission to view its data.

CAUSE

The Jet OLEDB provider opens databases, by default, in Read/Write mode. Jet requires the creation of a locking file (.ldb file) in order to open a database file in shared access mode. If you request shared access mode, Jet attempts to create the locking file, which fails on read-only media. If you open a database using exclusive mode, Jet does not need to create the locking file.

RESOLUTION

Open the database in read-only and exclusive mode. You can do this by setting the Mode property of the connection object to adShareDenyWrite.

The following code opens a connection on a read-only Microsoft Access database:
   Dim con as new ADODB.Connection
   con.Provider = "Microsoft.Jet.Oledb.3.51"
   con.Mode = adShareDenyWrite
   con.Open "Data Source=E:\testdb.mdb"
				

REFERENCES

The following Microsoft Knowledge Base article describes the same problem and a resolution when using Data Access Object (DAO):
191737 PRB: DAO MDB on Read-Only Media Must Be Opened Exclusively
Microsoft Developer Network Library, Visual Studio 6.0; search on:
Microsoft Data Access SDK

Properties

Article ID: 195475 - Last Review: October 15, 2003 - Revision: 2.0
APPLIES TO
  • Microsoft OLE DB Provider for Jet 3.51, when used with:
    • Microsoft Data Access Components 2.0
Keywords: 
kbdatabase kbjet kbprb KB195475
Retired KB Content Disclaimer
This article was written about products for which Microsoft no longer offers support. Therefore, this article is offered "as is" and will no longer be updated.

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com