使用VBA打开新数据库

时间:2013-06-27 11:52:38

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

我正在尝试使用当前数据库中的VBA打开另一个数据库,然后关闭我所在的数据库。当我使用此处列出的代码时,它会打开Access但会立即关闭它。我确信这只是我忽略的事情,但过去的一小时我已经摧毁了我的大脑。任何帮助将不胜感激。

Private Sub Command115_Click()
Dim objAccess As Access.Application

Const conPATH = "C:\Users\user\Desktop\Database1.accdb"

'Create an instance of the Access application object.
Set objAccess = CreateObject("Access.Application")

'Open the database
objAccess.Visible = True
objAccess.OpenCurrentDatabase conPATH

'Open the form.
objAccess.DoCmd.OpenForm "Main-Form"

' Maximize other Access window
objAccess.DoCmd.RunCommand acCmdAppMaximize
End Sub

提前感谢您对此事的任何帮助

2 个答案:

答案 0 :(得分:3)

如果您使用shell,那么当您关闭第一个数据库时,第二个数据库将保持打开状态。

Sub test()
    Dim sh As Variant
    sh = Shell("""C:\...\MSACCESS.EXE"" ""C:\...\FileName.accdb""")
End Sub

我猜你的代码不起作用的原因是因为,你开始的第二个访问是第一个存在的对象。第一个关闭并清除其对象/变量的那一刻。它关闭了第二个。

答案 1 :(得分:0)

假设您的第一个应用是access1,它正在尝试打开access2,然后关闭access1应用并将access2作为有效应用。你能做的一件事是, 一旦你的access1应用程序加载尝试以编程方式打开access2应用程序并使其可见,然后使用Application.closeCurrentdatabase关闭access1数据库,然后在access1应用程序窗体的卸载事件中(如果在access1应用程序中有任何表单)调用Application.Quit。

这很有效。