2015-02-24 35 views
0

的(Windows)用户,我们有几个用户通过MS Excel VBA程序访问MS Access数据库。 为了更新数据库,我们绑定了一个遗留系统。为了输入数据,我们使用普通的Access Forms和规范化的表格。 Excel VBA不会直接查询标准化表,而是使用包含非标准化记录的不同Access数据库。后者被删除(通过杀死命令),并在每次“会话”后新创建,用于在表单中输入新数据。 因此,如果任何用户通过Excel程序查询数据库,而其他程序想要删除并重新创建它,则删除将失败,并显示错误70-拒绝访问。 (我猜在Excel程序中有一些错误,并不是所有的连接都关闭了,这就是为什么一个长时间打开程序的用户会阻止删除很长一段时间 - 但我并不负责那些程序O_o)。MS Access 2010:在Windows Company公司网络环境中获取阻止数据库

因此,我想获得当前错误引发时阻止数据库的用户的Windows登录(或任何其他信息)。有没有办法做到这一点? 或者,我想要将任何阻止用户从数据库中删除,当它应该被删除时 - 有没有办法为kill命令设置某种优先级?

非常感谢!

回答

2

要找出谁打开了一个文件,使用PsFile,该文件的路径被阻止。

就架构而言,如果非规范化记录是由存储在Access数据库中的查询生成的,则应该考虑将Excel文件指向查询,而不是生成一个完整的单独文件为此目的。您可以使用“数据”功能区的“获取外部数据”部分在Excel工作簿中插入可刷新表格。