【问题标题】:Excel and Access link to external data locks file source fileExcel 和 Access 链接到外部数据锁定文件源文件
【发布时间】:2017-05-17 15:57:37
【问题描述】:

我在此处使用 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:数据库锁定模式=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;Jet OLEDB:Support Complex Data=False;Jet OLEDB:Bypass UserInfo Validation=False

【问题讨论】:

    标签: excel ms-office


    【解决方案1】:

    默认情况下,Excel 保持 OLEDB/ODBC 连接打开(从而锁定正在使用的访问数据库。)

    通过连接字符串进行的任何配置都不会阻止 Excel 执行此操作。与预期相反,将模式设置为共享拒绝无或只读不会让您摆脱麻烦。但是,您可以通过代码修改连接的属性,以使用 .MaintainConnection 属性来防止这种行为。 UI 中没有设置来修改此属性。

    试试这个代码:

    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
    

    【讨论】:

    • 哇。为什么这不是一个设置?数据库的重点是多用户环境。他们怎么能这样对我们?
    猜你喜欢
    • 1970-01-01
    • 2021-08-19
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 2013-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多