Excel和Access链接到外部数据锁文件源文件

时间:2017-01-03 14:17:59

标签: excel ms-office

我在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

1 个答案:

答案 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