使用vba代码将打开的文件带到前台窗口

时间:2016-03-25 07:11:46

标签: vba ms-access

我使用vba代码使用以下代码从其他访问数据库打开访问数据库

Public Declare Function ShellExecuteA Lib "shell32.dll" _
(ByVal hWnd As Long, ByVal strOperation As String, _
ByVal strFile As String, ByVal strParameters As String, ByVal strDirectory As _
String, ByVal nShowCmd As Long) As Long

Private Declare Function GetDesktopWindow Lib "user32" () As Long


Dim lngreturn As Long 
lngreturn = ShellExecuteA(GetDesktopWindow(), "OPEN", strFilePath, "", "", vbNormalFocus)

它工作正常,但它会持续打开数据库的新实例,即使后台已经打开了一个实例。我需要代码将打开的数据库带到前台。注意: - 我使用过AppActivate但它不起作用,因为我已经在msaccess中,而我想带到前台的另一个数据库也在访问中。

1 个答案:

答案 0 :(得分:1)

在文件 - 选项 - 当前数据库中为第二个数据库设置应用程序标题

然后将该标题与AppActivate一起使用。

或者,不是使用ShellExecuteA,而是构建一个完整的命令行(包括msaccess.exe的路径),并使用Shell()函数启动第二个数据库:

  

运行可执行程序并返回表示程序的任务ID的Variant(Double),如果成功

将此任务ID存储在公共或静态变量中,并将其与AppActivate一起使用。