Si le has asignado un título a la base de datos, para mostrarlo en la barra
de menús, tal vez este código te sirva de partida:
Option Compare Database
Option Explicit
Private Const kAccessWindowClass As String = "OMain"
Private Const SW_HIDE As Long = 0
Private Const SW_SHOWNORMAL As Long = 1
Private Const SW_SHOWMINIMIZED As Long = 2
Private Const SW_SHOWMAXIMIZED As Long = 3
Private Const SW_SHOWDEFAULT As Long = 10
Private Declare Function FindWindow Lib "User32" Alias "FindWindowA" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Private Declare Function ShowWindow Lib "User32" _
(ByVal hWnd As Long, _
ByVal nCmdShow As Long) As Long
'Private Declare Function apiSetFocus Lib "user32.dll" Alias "SetFocus" _
' (ByVal hWnd As Long) As Long
'---------------------------------------------------------------------------------------
' Function : BuscarVentanas
' Propósito : Busca una ventana de Access con el título indicado. Si la
encuentra, la
' maximiza. De lo contrario, ejecuta Access y abre la BD indicada.
' Parámetros:
' - TituloBD: Título que aparece en la ventana principal de Access.
También es la
' propiedad AppTitle de la base de datos.
' - QueBaseDatos: Nombre y ruta de la base de datos a abrir, si no se
encuentra ya
' abierta y encontrada.
'---------------------------------------------------------------------------------------
Function BuscarVentanas(TituloBD As String, QueBaseDatos As String)
Dim lngHwnd As Long
lngHwnd = FindWindow(kAccessWindowClass, TituloBD)
'Debug.Print lngHwnd
If lngHwnd = 0 Then
'Debug.Print "No se encontró"
Shell "msaccess.exe " & """" & QueBaseDatos & """", vbMaximizedFocus
Else
'Debug.Print "Sí se encontró"
ShowWindow lngHwnd, SW_SHOWNORMAL
ShowWindow lngHwnd, SW_SHOWMAXIMIZED
'apiSetFocus lngHwnd
End If
End Function
--
Un saludo,
Patxi Sanz
patxisanz[ARROBA]yahoo[PUNTO]es
http://es.geocities.com/patxisanz/index.html
Tudela (NA)