Excel oledb连接到Ms-Access数据库锁访问数据库

我有一个Excel电子表格连接到MS-Access 2003数据库使用ole db连接。 当我在电子表格中刷新数据并打开我的ms-access数据库时,它说数据库是只读的。 如果我closures电子表格,然后打开MS-Access DB,那么它将以写入模式打开。 以下是Excel电子表格中使用的连接string。

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 

"Mode=Share Deny Write"更改为"Mode=Read"

在连接string中

您是否检查过Excel用户对包含Access文件的文件夹拥有完全权限?

Excel的后台刷新选项已启用。 禁用它,或者使用查询工作室将查询devise为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>