2010-08-17 119 views
6

我有一個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 
+0

你會如何接受答案?在問新的問題之前,你應該接受正確的答案。 – hgulyan 2010-08-17 07:19:11

+0

我沒有得到任何有效的答案,解決了問題 – Kannabiran 2010-08-18 05:47:13

+0

@hgulyan我會很高興的鏈接到上一個問題。 – Fionnuala 2010-08-18 11:45:34

回答

1

您是否檢查過Excel用戶對包含Access文件的文件夾擁有完全權限?

+1

我找到了解決方案...我們需要設置mode = read;在連接字符串中...解決了問題 – Kannabiran 2010-08-19 04:39:07

19

變化"Mode=Share Deny Write""Mode=Read"

在連接字符串

+0

有關所有模式的列表https://msdn.microsoft.com/zh-cn/library/ee210191 – Slai 2016-06-20 17:43:05

1

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>