'---------------------------------------------------------
'
' ShowDatabaseWindow
'
' Código escrito originalmente por Juan M Afán de Ribera.
' Estás autorizado a utilizarlo dentro de una aplicación
' siempre que esta nota de autor permanezca inalterada.
' En el caso de querer publicarlo en una página Web,
' por favor, contactar con el autor en
'
' accessvbafaq@ya.com
'
' Este código se brinda por cortesía de
' Juan M. Afán de Ribera
'
Private Const SW_SHOWNORMAL = 1&
Private Const SW_HIDE = 0&
' función para mostrar/ocultar ventanas
Private Declare Function ShowWindow Lib "user32" _
(ByVal hwnd As Long, _
ByVal nCmdShow As Long) As Long
' función para localizar una ventana
Private Declare Function FindWindowEx Lib "user32" _
Alias "FindWindowExA" _
(ByVal hWnd1 As Long, _
ByVal hWnd2 As Long, _
ByVal lpsz1 As String, _
ByVal lpsz2 As String) As Long
' función para obtener el título de una ventana
Private Declare Function GetWindowText Lib "user32" _
Alias "GetWindowTextA" _
(ByVal hwnd As Long, _
ByVal lpString As String, _
ByVal cch As Long) As Long
Function ShowDatabaseWindow(Show As Boolean)
Dim hWndMdi As Long
Dim hWndODb As Long
Dim hWndSDIa As Long
Dim sODb As String
Dim LensODb As Long
' localizamos la ventana del fondo de Access
hWndMdi = FindWindowEx(hWndAccessApp, 0&, "MDIClient", vbNullString)
' localizamos la ventana de base de datos de Access
hWndODb = FindWindowEx(hWndMdi, 0&, "ODb", vbNullString)
If hWndODb Then
If Show Then
' mostramos la ventana base de datos
ShowWindow hWndODb, SW_SHOWNORMAL
Else
' ocultamos la ventana base de datos
ShowWindow hWndODb, SW_HIDE
End If
sODb = String(256, vbNullChar)
' obtenemos el título y su longitud de la
' ventana base de datos
LensODb = GetWindowText(hWndODb, sODb, 256&)
sODb = Left(sODb, LensODb)
' localizamos la ventana de la base de datos
' en la barra de tareas (aplicaciones en ejecución)
hWndSDIa = FindWindowEx(0&, 0&, "MS-SDIa", sODb)
If hWndSDIa Then
If Show Then
' mostramos la ventana
ShowWindow hWndSDIa, SW_SHOWNORMAL
Else
' ocultamos la ventana
ShowWindow hWndSDIa, SW_HIDE
End If
End If
End If
End Function
'---------------------------------------------------------