como ocultar la ventana de access

Hazte fan!! Síguenos!!
En esta ocacion hablaremos acerca de la necesidad de ocultar la ventana de access cuando corremos una aplicacion, asi nuestra aplicacion tendra una apariencia mas profesional al momento de ser presentada, para eso recurriremos a las API de windows donde encontraremos lo necesario para hacer esta implementacion.



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

Listo!! con esto conseguiremos ocultar la ventana de Access y solamente mostrar nuestra propias ventanas.

Aqui el Video de la Explicacion.


30 comentarios:

  1. Hola, eh creado el modulo pero al declarar la variable en el formulario de inicio no me permite avanzar, me dice que esta mal declarada, alguna solución?

    ResponderBorrar
  2. fAccessWindow ("Show", False, False), quitale los paréntesis y listo

    ResponderBorrar
  3. Consulta esto solo funciona para 32 bits? si necesito para ambos? Es decir algunas PC tienen 32 Bits y otras 64 cmo puedo hacer?
    saludos y muchas gracias

    ResponderBorrar
    Respuestas
    1. te recomiendo leas esta solucion

      http://aulaclick-access.blogspot.com/2011/07/atributo-ptrsafe-en-ms-access-64-bits.html

      Borrar
  4. ayudeme con la proramacion para 64 bit

    ResponderBorrar
  5. no se oculta solo usen minimized en vez de hide soy uno de los que lo descubrió

    ResponderBorrar
    Respuestas
    1. Necesito mantener los botones de minimizar y maximizar habilitados, pero al minimizar algun formulario, la aplicacion se queda perdida, y no se puede recuperar por lo que tengo que cerrar desde el Administrador de tareas; el caso es que no puedo mantener las ventanas fijas en el escritorio por la interactividad con otras aplicaciones...Espero tus comentarios

      Borrar
    2. No cierres el primer formulario.
      En el segundo formulario Crea un botón y en el evento click escribe este código:

      Me.Modal = False

      Esto te devuelve el control al primer formulario.

      Borrar
  6. Lo hice y me funciona, pero al querer abrir un informe access se me queda colgado yo tengo que cerrar con el administrador

    ResponderBorrar
  7. Como le haces para que en la pantalla de tu sistema punto de venta te muestre los informes sin problema

    ResponderBorrar
    Respuestas
    1. http://aulaclick-access.blogspot.com/2019/07/recibe-gratis-las-12-entregas-del.html

      Borrar
  8. Hola, quisiera saber como se hace para que el TITULO de cualquier ventana emergente quede centrado y no a la izquierda como aparece por defecto, gracias desde ya, saludos.

    ResponderBorrar
  9. Hola, muy buen tutorial tengo una pequeña duda. hay alguna forma de poder abrir los informes cuando se aplica este método de ocultar Access? Muchas gracias

    ResponderBorrar
  10. Hola Arturo, Genio, me funcionó a la perfección, la verdad que es realmente grato pertenecer a tu block y con este foro que has incluído no hay duda que no se aclare, gracias, un saludo desde Uruguay. Oscar.

    ResponderBorrar
    Respuestas
    1. A mi también me ocurre y no se como hacerlo, me podrías decir como lo soluciono?

      Borrar
  11. Buena noche soy de Guatemala y al escribir este código
    fAccessWindow "Hide", False, False
    al momento de compilar me muestra una alerta de compilación. es la siguiente: No se ha definido sub o fuction.

    ResponderBorrar
  12. MUY BUENO, ME SIRVE MUCHO, SOLO QUE AL MOMENTO DE GENERAR UN INFORME, LA APLICACION SE BLOQUEA Y SE TIENE QUE CERRAR CON EL ADMINISTRADOR

    ResponderBorrar
    Respuestas
    1. En el evento 'Al Abrir ' del informe colocas un

      DoCmd.Maximize

      Luego con los botones minimizar/maximizar puedes 'jugar' con el tamaño

      Borrar
  13. buenas, una duda ala hora de abrir una tabla de consulta ya que la necesito para filtrar datos que quiero consultar mediante un formulario, no me aparece nada, como puedo visualizar una tabla de consulta ocultando los botones de acces?
    un saludo, es un problema que llevo tiempo intentando solucionar.

    gracias.

    ResponderBorrar
  14. Hola a todos desde Cuba! Agradecer al Profesor por la solución. Finalmente resolvió el problema que tenía.

    ResponderBorrar
  15. Hola desde Barcelona.
    Me ha funcionado perfectamente la solución del profesor, pero me gustaría saber si hay alguna manera de poder entrar en el modo diseño sin tener que cerrar access y abrirlo apretando la tecla shift, ya que al intentar hacerlo con el botón derecho se cierra la aplicación.
    Gracias.

    ResponderBorrar
  16. Hola todo funciona muy bien, los formularios sencillos los abre muy bien solo que al querer ejecutar un formulario dividido y al ejecutar los las macros con funciones de impresora se pierden las pantallas y queda el sistema bloqueado, y hay que desbloquear desde el administrador de tareas, si hay alguien con este fallo y lo resolvieron por favor pasen el tip, muchas gracias para aquellos que me envíen comentarios, saludos.

    ResponderBorrar
  17. Agrega en EVENTOS de INFORME "Al Abrir"
    [Procedimiento de evento]
    DoCmd.Restore

    y eso es todo. Felicidades y éxitos

    ResponderBorrar
  18. Gracias por el video y el códgigo. He puesto como lo indicas Las ventanas deben tener la propiedades de Emergente y Modal debe tener el valor de SI. El menú principal me abre bien y no se ve el área de trabajo de access. Pero hay un formulario que cuando lo llamo desde el formulario que me sirve de menu, Access se queda congelado.... Alguna sugerencia.

    ResponderBorrar
  19. Muchas gracias por todo, todo muy claro y logre concretar mi aplicacion.

    ResponderBorrar
  20. Muchas gracias por todo, muy claro y pude abrir los informes gracias a las respuestas en el blog

    ResponderBorrar

Entradas populares