Excel 2013数据连接 – 只读

希望有人能帮助!

我有一个“摘要”excel工作簿与其他“数据”工作簿枢轴和数据连接

  1. 当刷新连接并且用户在数据工作簿中时,刷新不再说只读(然后尝试打开数据工作簿)。 有没有办法解决这个问题?比如读取数据而不是写访问? 数据string属性如下

提供程序= Microsoft.ACE.OLEDB.12.0;用户ID =pipe理员;数据源= C:\ Test \ Test.xlsm;模式=共享拒绝写入;扩展属性=“HDR =是;”; Jet OLEDB:系统数据库= “; Jet OLEDB:全局批量交易= 2; Jet OLEDB:全局批量交易= 1; Jet OLEDB:registrypath=”“; Jet OLEDB:引擎types= 37; Jet OLEDB:数据库locking模式=新的数据库密码=“”; Jet OLEDB:创build系统数据库= False; Jet OLEDB:encryption数据库= False; Jet OLEDB:不复制区域设置紧凑= False; Jet OLEDB:紧凑无副本修复=假; SFP = False; Jet OLEDB:支持复杂数据= False; Jet OLEDB:绕过UserInfovalidation= False; Jet OLEDB:有限DB高速caching= False; Jet OLEDB:绕过ChoiceFieldvalidation= False

  1. 当我刷新连接并且用户进入数据工作簿时,excel表示它只读且被“另一个用户”使用。 我使用下面的vba刷新

    ActiveWorkbook.Connections( “Test.xlsm”)。刷新

有没有办法在vba中告诉excel删除访问权限,以便数据工作簿变得免费。 我能想到的唯一解决scheme是closures工作簿并再次打开。

希望有人能帮助! 非常感谢!

好的,我find了一个解决scheme,希望这将有助于未来的其他人。

  1. 我会先处理第二个问题!

    Dim conn As Variant For Each conn In ActiveWorkbook.Connections conn.OLEDBConnection.MaintainConnection = False Next conn 

所以在Excel 2013中,我发现维护连接属性默认设置为true。 在刷新数据连接之后,这将它设置为false。 作品,现在用户可以在刷新后进入源数据,没有任何问题。

  1. 对于第一个问题,经过多次search+尝试设置连接stringMode = Read / Readonly = False等。(我无法工作)我决定在刷新连接时处理只读问题。 基本上我有一些代码来检查源文件中的用户。 如果他们以只读方式打开源文件,刷新连接(并枢轴),然后closures文件。 如果没有用户打开文件,只需刷新连接。 如果任何人需要代码请评论,我可以发布

非常感谢!