Excel oledb连接到Ms-Access数据库锁访问分区
我有一个excel电子表格,它使用ole db连接连接到MS-Access 2003数据库。当我刷新电子表格中的数据并打开我的ms-access数据库时,它说数据库是只读的。如果我关闭电子表格,然后打开MS-Access数据库,则它将以写入模式打开。以下是Excel电子表格中使用的连接字符串。Excel oledb连接到Ms-Access数据库锁访问分区
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
您是否检查过Excel用户对包含Access文件的文件夹拥有完全权限?
我找到了解决方案...我们需要设置mode = read;在连接字符串中...解决了问题 – Kannabiran 2010-08-19 04:39:07
变化"Mode=Share Deny Write"
到"Mode=Read"
在连接字符串
有关所有模式的列表https://msdn.microsoft.com/zh-cn/library/ee210191 – Slai 2016-06-20 17:43:05
Excel的后台刷新选项启用。禁用它,或使用查询工作室将查询设计为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>
你会如何接受答案?在问新的问题之前,你应该接受正确的答案。 – hgulyan 2010-08-17 07:19:11
我没有得到任何有效的答案,解决了问题 – Kannabiran 2010-08-18 05:47:13
@hgulyan我会很高兴的链接到上一个问题。 – Fionnuala 2010-08-18 11:45:34