在1台计算机上打开了相同访问数据库的多个实例 - 问题

时间:2010-12-06 20:14:04

标签: vba ms-access-2007 scheduled-tasks

我遇到ms access 2007 accdb的问题,使用Windows Server 2008任务计划程序执行计划任务。问题是任务调度程序正在打开/关闭的文件正在打开/关闭,但是数据库关闭后“锁定”文件(.laccdb)仍然可见,这表明访问数据库认为它仍处于打开状态。每次运行新任务时,都会打开一个新的访问实例。我打开了Schema来显示数据库中所有用户的名单,它显示了3个服务器名称/ Admin帐户的副本。以下是访问中即时窗口的示例:

COMPUTER_NAME LOGIN_NAME已连接SUSPECT_STATE SERVER Admin True Null SERVER Admin True Null SERVER Admin True Null

我希望其他人遇到此问题并知道1)如何轻松关闭所有打开的访问实例,以及2)如何防止在运行任务时发生这种情况。我在任务的“设置”选项卡下设置了“不要启动新实例”,但这与b / c没有任何任务同时运行无关。提前感谢您的任何帮助。

1 个答案:

答案 0 :(得分:0)

要关闭所有打开的Access实例(您无法从Access运行此实例,因为您无法保证正在运行的实例将是您检索的最后一个引用):

Sub CloseAllAccessInstances()
    Dim acc As Access.Application

    Do
        Set acc = GetObject(, "Access.Application")

        If IsNull(acc) Then Exit Do

        acc.Quit
    Loop
End Sub

运行上述操作后,请检查任务管理器。如果您看到msaccess.exe,那么您很可能有一个循环对象引用。这将阻止Access关闭。有关详细信息,请查看http://msdn.microsoft.com/en-us/library/aa716190(VS.60).aspx