【发布时间】:2014-03-07 17:09:58
【问题描述】:
我有一个 Excel 工作簿,里面有 25 张纸。每个工作表都有一个到 MS Access 中的查询的数据连接。每个访问查询都有一个或多个来自 InterSystems Caché DB 的链接表。这是其中一个的连接字符串。
Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=\DIR\SUBDIR\XXX\Database\CAST\CAST_CLIENT_SETTINGS.mdb;Mode=Share Deny Write;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
后台刷新未启用,命令类型为表格。
Access DB 有 25 个链接到 Cache DB 的 ODBC 表。访问数据库中有 25 个查询,每个查询都使用一个或多个链接表。记录锁定 No 和 Recordset 类型 Dynaset 在每个。
在 Excel 工作簿中有一个带有一些 vba 代码的按钮,可以启动所有 25 个工作表的刷新以返回最新信息。这工作得很好,除了需要几分钟,但问题是它在缓存中锁定了 25 个许可证并保持锁定直到工作簿关闭。
公司只有 50 个许可证,所以我不能使用这么多。我是否缺少任何可以阻止这种情况发生的设置?我可以更改模式、锁定模式、记录集类型、后台刷新、使用直通吗?我可以在 vba 中写入一些东西以在刷新后删除这些锁吗?人们使用此实用程序以相对实时跟踪他们在对应于缓存数据库的应用程序中所做的更改。
在它被完全废弃之前,我希望有人能想出一个想法,如果可能的话,它只允许使用一个许可证。谢谢你的帮助。
【问题讨论】:
标签: ms-access excel odbc intersystems-cache vba