sábado, 1 de agosto de 2020

Ocultar la ventana de Access cuando corremos una aplicación

Nuestra aplicación tendrá una apariencia mas profesional al momento de ser presentada, para eso recurriremos a las API de Windows donde encontraremos lo necesario para hacer esta implementación.


Paso 1: Crear un Modulo Nuevo y ponerle el nombre de ocultaventanaaccess
Paso 2: Colocar el siguiente codigo:

Option Compare Database

'Guarda Valor de Estados de Ventana
Dim dwReturn As Long

'Constantes de Estado de Ventana
Const SW_HIDE = 0
Const SW_SHOWNORMAL = 1
Const SW_SHOWMINIMIZED = 2
Const SW_SHOWMAXIMIZED = 3

' Se identifica Plataforma 32 o 64 bits'
#If Win64 Then
    Private Declare PtrSafe Function IsWindowVisible Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare PtrSafe Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
#Else
    Private Declare Function IsWindowVisible Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
#End If

'Llamada de funcion para ocultar Ventana de Access
Public Function fAccessWindow(Optional Procedure As String, Optional SwitchStatus As Boolean, Optional StatusCheck As Boolean) As Boolean

'Tres Modos de llamada de Ventana: Ocultada, Visible, Minimizada
If Procedure = "Hide" Then
    dwReturn = ShowWindow(Application.hWndAccessApp, SW_HIDE)
End If
If Procedure = "Show" Then
    dwReturn = ShowWindow(Application.hWndAccessApp, SW_SHOWMAXIMIZED)
End If
If Procedure = "Minimize" Then
    dwReturn = ShowWindow(Application.hWndAccessApp, SW_SHOWMINIMIZED)
End If

If SwitchStatus = True Then
    If IsWindowVisible(hWndAccessApp) = 1 Then
        dwReturn = ShowWindow(Application.hWndAccessApp, SW_HIDE)
    Else
        dwReturn = ShowWindow(Application.hWndAccessApp, SW_SHOWMAXIMIZED)
    End If
End If

If StatusCheck = True Then
    If IsWindowVisible(hWndAccessApp) = 0 Then
        fAccessWindow = False
    End If
    If IsWindowVisible(hWndAccessApp) = 1 Then
        fAccessWindow = True
    End If
End If

End Function

Paso 3: En el formulario con el que iniciamos la aplicacion, colocan en el evento "Al Abrir" o "On Open" , la llamada de la funcion para ocultar la ventana de access de la siguiente manera:

fAccessWindow  "Hide", False, False

Las ventanas deben tener la propiedades de Emergente y Modal debe tener el valor de SI

Así ocultamos la ventana de Access y solamente mostrar nuestra propias ventanas.