Excel数据连接锁定访问数据库,防止第二次连接刷新

Aar*_*ras 6 import excel ms-access connection-string

我在同一个Access DB中有两个与不同查询的数据连接.第二个总是失败(无论我先跑哪个).

当我查看数据库时,我注意到它有一个锁定文件,我认为这会导致问题.在我关闭Excel文件之前它一直处于锁定状态.导入完成后,任何人都可以帮我解锁数据库吗?


附加信息:

我正在使用Excel和Access 2010.

错误:

"文本文件规范' MyQuery Link Specification'不存在.您无法使用规范导入,导出或链接."

连接字符串(注意:我正在使用命令类型:表):

Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin
;Data Source=A:\folder\folder\My Database.accdb
;Mode=Share Deny None
;Extended Properties=""
;Jet OLEDB:System database=""
;Jet OLEDB:Registry Path=""
;Jet OLEDB:Engine Type=6
;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
;Jet OLEDB:Support Complex Data=False
;Jet OLEDB:Bypass UserInfo Validation=False
Run Code Online (Sandbox Code Playgroud)

最后,根据这篇文章,我尝试将我的模式从"Share Deny None"更改为"Read",但它没有帮助.我也不明白为什么会这样,但我试过了.

编辑:我继续研究这个问题,但找不到解决方案.我已经尝试在我的连接字符串中添加一个额外的语句,ReadOnly = True但没有运气.

Aar*_*ras 7

我面临着另一个关于数据连接的问题,它的解决方案实际上最终解决了这个长期存在的问题!

我的猜测是秘密在于"MaintainConnection = False":

Dim i As Integer
Dim awc As WorkbookConnection
Dim c As OLEDBConnection

For i = 0 to ActiveWorkbook.Connections.Count
    Set awc = ActiveWorkbook.Connections.Item(i)
    Set c = awc.OLEDBConnection
    c.EnableRefresh = True
    c.BackgroundQuery = False
    c.Reconnect
    c.Refresh
    c.MaintainConnection = False
Next i
Run Code Online (Sandbox Code Playgroud)