我使用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中,而我想带到前台的另一个数据库也在访问中。
答案 0 :(得分:1)
在文件 - 选项 - 当前数据库中为第二个数据库设置应用程序标题。
然后将该标题与AppActivate
一起使用。
或者,不是使用ShellExecuteA
,而是构建一个完整的命令行(包括msaccess.exe的路径),并使用Shell()
函数启动第二个数据库:
运行可执行程序并返回表示程序的任务ID的Variant(Double),如果成功
将此任务ID存储在公共或静态变量中,并将其与AppActivate
一起使用。