2010-08-17 11 views
6

Tengo una hoja de cálculo de Excel que se conecta a la base de datos de MS-Access 2003 mediante una conexión ole db. Cuando actualizo los datos en una hoja de cálculo y abro mi base de datos de ms-access, dice que la base de datos es de solo lectura. Si cierro la hoja de cálculo y luego abro MS-Access DB, se abre en modo Escritura. La siguiente es la cadena de conexión utilizada en la hoja de cálculo de Excel.Conexión de Excel oledb al acceso de bloqueo de base de datos Ms-Access db

Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin; 
Data Source=D:\Dev\Reports.mdb;Mode=Share Deny Write;Extended Properties=""; 
Jet OLEDB:System database="";Jet OLEDB:Registry Path=""; 
Jet OLEDB:Database Password=""; 
Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=0; 
Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1; 
Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False; 
Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False; 
Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False 
+0

¿Acepta la respuesta? Debe aceptar respuestas correctas, antes de hacer preguntas nuevas. – hgulyan

+0

No recibí ninguna respuesta válida que resolvió el problema – Kannabiran

+0

@hgulyan Me alegraría un enlace a la pregunta anterior. – Fionnuala

Respuesta

1

¿Ha comprobado que el usuario de Excel tiene permisos completos en la carpeta que contiene el archivo de acceso?

+1

He encontrado la solución ... necesitamos establecer mode = read; en la cadena de conexión ... que resolvió el problema – Kannabiran

19

Cambio "Mode=Share Deny Write"-"Mode=Read"

en cadena de conexión

+0

Para obtener una lista de todos los modos https://msdn.microsoft.com/en-us/library/ee210191 – Slai

1

opción de actualización en segundo plano de Excel está activada. Deshabilítelo, o use el estudio de consulta para diseñar la consulta como DBQ.

<xml id=msodc><odc:OfficeDataConnection xmlns:odc="urn:schemas-microsoft-com:office:odc" 
xmlns="http://www.w3.org/TR/REC-html40"> 
    <odc:Connection odc:Type="ODBC"> 
    <odc:ConnectionString> 
    DBQ=<database path and filename>;DefaultDir=<database path>; 
    Driver={Microsoft Access Driver (*.mdb, *.accdb)};DriverId=25; 
    FIL=MS Access;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5; 
    ReadOnly=1;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes; 
    </odc:ConnectionString> 
    <odc:CommandText>SELECT ... FROM ... WHERE ... </odc:CommandText> 
    </odc:Connection> 
</odc:OfficeDataConnection></xml> 
Cuestiones relacionadas