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:
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.
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.
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?
ResponderBorrarCual es el mensaje de error que te aparece?
BorrarfAccessWindow ("Show", False, False), quitale los paréntesis y listo
ResponderBorrarConsulta esto solo funciona para 32 bits? si necesito para ambos? Es decir algunas PC tienen 32 Bits y otras 64 cmo puedo hacer?
ResponderBorrarsaludos y muchas gracias
te recomiendo leas esta solucion
Borrarhttp://aulaclick-access.blogspot.com/2011/07/atributo-ptrsafe-en-ms-access-64-bits.html
ayudeme con la proramacion para 64 bit
ResponderBorrargracias !!
Borrarno se oculta solo usen minimized en vez de hide soy uno de los que lo descubrió
ResponderBorrarNecesito 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
BorrarNo cierres el primer formulario.
BorrarEn 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.
Lo hice y me funciona, pero al querer abrir un informe access se me queda colgado yo tengo que cerrar con el administrador
ResponderBorrarComo le haces para que en la pantalla de tu sistema punto de venta te muestre los informes sin problema
ResponderBorrarhttp://aulaclick-access.blogspot.com/2019/07/recibe-gratis-las-12-entregas-del.html
BorrarHola. ¡Muchisimas gracias!
ResponderBorrarHola, 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.
ResponderBorrarHola, 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
ResponderBorrarHola 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.
ResponderBorrarA mi también me ocurre y no se como hacerlo, me podrías decir como lo soluciono?
BorrarBuena noche soy de Guatemala y al escribir este código
ResponderBorrarfAccessWindow "Hide", False, False
al momento de compilar me muestra una alerta de compilación. es la siguiente: No se ha definido sub o fuction.
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
ResponderBorrarEn el evento 'Al Abrir ' del informe colocas un
BorrarDoCmd.Maximize
Luego con los botones minimizar/maximizar puedes 'jugar' con el tamaño
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?
ResponderBorrarun saludo, es un problema que llevo tiempo intentando solucionar.
gracias.
Hola a todos desde Cuba! Agradecer al Profesor por la solución. Finalmente resolvió el problema que tenía.
ResponderBorrarHola desde Barcelona.
ResponderBorrarMe 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.
Muchas gracias!!! Me sirvió muchisimo
ResponderBorrarHola 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.
ResponderBorrarAgrega en EVENTOS de INFORME "Al Abrir"
ResponderBorrar[Procedimiento de evento]
DoCmd.Restore
y eso es todo. Felicidades y éxitos
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.
ResponderBorrarMuchas gracias por todo, todo muy claro y logre concretar mi aplicacion.
ResponderBorrarMuchas gracias por todo, muy claro y pude abrir los informes gracias a las respuestas en el blog
ResponderBorrar