MS Access 2010:获取(Windows)阻止数据库的用户
MS Access 2010: get (Windows) user who blocks database
在 Windows 公司网络环境中,我们有几个用户通过 MS Excel VBA 程序访问 MS Access 数据库。
为了更新数据库,我们绑定到遗留系统。为了输入数据,我们使用普通的 Access Forms 和规范化的表格。 Excel VBA 不直接查询规范化表,而是使用包含非规范化记录的不同 Access 数据库。后者被删除(通过 Kill 命令)并在每个 "session" 之后新创建,用于在表单中输入新数据。
因此,如果任何用户通过 Excel 程序查询数据库,而其他程序想要删除并重新创建它,则删除将失败并显示错误 70 - 访问被拒绝。
(我想在 Excel 程序中存在一些错误并且并非所有连接都已关闭,这就是为什么长时间保持程序打开的用户会长时间阻止删除 - 但我是不负责这些程序 O_o ).
因此,我想获得在抛出错误时当前阻止数据库的用户的 windows 登录名(或任何其他信息)。有什么办法吗?
或者,我想在应该删除任何阻塞用户时将其踢出数据库 - 有没有办法为 kill 命令设置某种优先级??
非常感谢!
要查明谁打开了文件,请使用 PsFile 和被阻止文件的路径。
就您的体系结构而言,如果非规范化记录是由存储在(或可能存储在)Access 数据库中的查询生成的,您应该考虑将 Excel 文件指向一个查询,而不是而不是为此目的生成一个完整的单独文件。您使用 "DATA" 功能区的 "Get External Data" 部分在 Excel 工作簿中插入可刷新的表格。
在 Windows 公司网络环境中,我们有几个用户通过 MS Excel VBA 程序访问 MS Access 数据库。 为了更新数据库,我们绑定到遗留系统。为了输入数据,我们使用普通的 Access Forms 和规范化的表格。 Excel VBA 不直接查询规范化表,而是使用包含非规范化记录的不同 Access 数据库。后者被删除(通过 Kill 命令)并在每个 "session" 之后新创建,用于在表单中输入新数据。 因此,如果任何用户通过 Excel 程序查询数据库,而其他程序想要删除并重新创建它,则删除将失败并显示错误 70 - 访问被拒绝。 (我想在 Excel 程序中存在一些错误并且并非所有连接都已关闭,这就是为什么长时间保持程序打开的用户会长时间阻止删除 - 但我是不负责这些程序 O_o ).
因此,我想获得在抛出错误时当前阻止数据库的用户的 windows 登录名(或任何其他信息)。有什么办法吗? 或者,我想在应该删除任何阻塞用户时将其踢出数据库 - 有没有办法为 kill 命令设置某种优先级??
非常感谢!
要查明谁打开了文件,请使用 PsFile 和被阻止文件的路径。
就您的体系结构而言,如果非规范化记录是由存储在(或可能存储在)Access 数据库中的查询生成的,您应该考虑将 Excel 文件指向一个查询,而不是而不是为此目的生成一个完整的单独文件。您使用 "DATA" 功能区的 "Get External Data" 部分在 Excel 工作簿中插入可刷新的表格。