我在excel文件中使用外部连接到此处的共享访问数据库,但由于某种原因,我的连接使得无法为其他人编辑该文件。我不知道为什么会发生这种情况,但这里是咨询代码:
Provider = Microsoft.ACE.OLEDB.12.0; User ID = Admin; Data Source = G:\ Middle \ Controles Gerencias \ Rentabilidade Bco \ carteiras diarias.mdb; Mode =; Extended Properties =“”; Jet OLEDB:System database =“”; Jet OLEDB:Registry Path =“”; 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:新数据库密码=“”; Jet OLEDB:创建系统数据库= False; Jet OLEDB:加密数据库= False; Jet OLEDB:不复制Compact上的Locale = False; Jet OLEDB:没有复制修复的Compact = False; Jet OLEDB:SFP = False; Jet OLEDB:支持复杂数据= False; Jet OLEDB:绕过UserInfo验证= False
答案 0 :(得分:1)
默认情况下,Excel会保持OLEDB / ODBC连接处于打开状态(从而锁定正在使用的访问数据库。)
通过连接字符串进行的任何配置都不会阻止Excel执行此操作。与预期相反,将模式设置为分享拒绝,或者只读,不会让您解决问题。但是,您可以通过代码修改连接的属性,以使用.MaintainConnection
属性来防止此行为。用户界面中没有设置来修改此属性。
试试这段代码:
Function unlock_conns()
Dim conn
For Each conn In ActiveWorkbook.Connections
Select Case conn.Type
Case xlConnectionTypeOLEDB
conn.OLEDBConnection.MaintainConnection = False
Case xlConnectionTypeODBC
conn.ODBCConnection.MaintainConnection = False
End Select
Next conn
End Function