我为数据库用户创建了一个启动应用程序,以打开特定数据库的前端。例如,用户打开启动应用程序(它是共享网络上的Access DB),然后执行以下操作:
此过程使我可以更轻松地实现对前端的更新,并且几乎对每个人都有效。但是,有几个用户遇到相同的问题。当他们打开启动应用程序时,前端被复制到其本地驱动器并打开,但是当调用“ Application.Quit”行时,启动应用程序和前端都关闭。
有人知道这是什么原因吗,为什么它只会影响某些用户而不影响其他用户?以下是启动应用程序中的代码示例,该示例打开本地db(从网络位置复制后),然后关闭自身(并被设置为应该以使前端保持打开状态)。
Dim appAccess As Access.Application
Set appAccess = CreateObject("Access.Application")
appAccess.OpenCurrentDatabase "C:\Databases\Database1.accdb"
appAccess.Visible = True
appAccess.RunCommand acCmdAppMaximize
Set appAccess = Nothing
Application.Quit
谢谢!
蒂姆
答案 0 :(得分:4)
问题是:新打开的应用程序只是一个变量,和任何变量一样,一旦超出范围,它就会被销毁。
为避免发生这种情况,请将.UserControl
设置为True,以指示用户正在控制该应用程序并负责关闭该应用程序。
Dim appAccess As Access.Application
Set appAccess = CreateObject("Access.Application")
appAccess.OpenCurrentDatabase "C:\Databases\Database1.accdb"
appAccess.Visible = True
appAccess.UserControl = True
appAccess.RunCommand acCmdAppMaximize
Set appAccess = Nothing
Application.Quit