2010-08-17 5 views
6

J'ai une feuille de calcul Excel qui se connecte à la base de données MS-Access 2003 à l'aide de la connexion ole db. Lorsque j'actualise les données dans une feuille de calcul et ouvre ma base de données ms-access, la base de données est en lecture seule. Si je ferme la feuille de calcul, puis ouvre MS-Access DB, il s'ouvre en mode écriture. Voici la chaîne de connexion utilisée dans la feuille de calcul Excel.Connexion Excel oledb à l'accès au verrou de la base de données 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

Avez-vous des réponses? Vous devriez accepter les bonnes réponses, avant d'en demander de nouvelles. – hgulyan

+0

Je n'ai pas obtenu de réponse valide qui a résolu le problème – Kannabiran

+0

@hgulyan Je serais heureux d'un lien vers la question précédente. – Fionnuala

Répondre

1

Avez-vous vérifié que l'utilisateur Excel dispose des autorisations complètes sur le dossier contenant le fichier Access?

+1

J'ai trouvé la solution ... nous devons définir mode = read; dans la chaîne de connexion ... qui a résolu le problème – Kannabiran

19

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

dans la chaîne de connexion

+0

Pour une liste de tous les modes https://msdn.microsoft.com/fr-fr/library/ee210191 – Slai

1

option de rafraîchissement d'arrière-plan Excel est activé. Désactivez-le ou utilisez le studio de requête pour concevoir la requête en tant que 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> 
Questions connexes