Principales respuestas
¿Como se "esconde" la ventana de Access?

Pregunta
-
Hola, buenos dias a tod@s.
En un proyecto Access, por un lado tengo un una base donde estan las Tablas Originales y por otro lado otra base donde esta el resto, o sea formularios, informes, consultas y los vinculos a las tablas originales. Esto lo he hecho asi para poder realizar actualizaciones sin perjudicar a las tablas, no se si es la mejor forma pero es la que conozco.
El problema que tengo es que una vez compilados los dos por separado, y puesto el Runtime en el ordenador donde se utilizara, al abrir el programa se abre tambien el Access de las tablas originales, no se ven las tablas pero si se ve el access.
Lo he probado con Acces 2007 y 2010 y me ocurre lo mismo.
Mi pregunta es que ¿como puedo hacer para que no aparezca el Access que contiene las tablas originales al abrir el programa? O sea que solo se vea mi menu principal y ni se note que hay un acces detras.
He visto y probado ejemplos pero la ventana de Access sigue ahi.
En fin, si alguien tiene algun ejemplo o sugerencia se lo agradezco por adelantado.
Respuestas
-
Muchas gracias por la aportacion pero con paciencia y buscando por ahi he encontrado esta solucion que no esta nada mal, sigue viendose como se abre Access pero se esconde al momento.
Esta linea hay que colocarla en el formulario que abre el programa.
fAccessWindow "Hide", False, False
Y esta otra parte hay que colocarla en un modulo y listo, efecto conseguido.
Private Declare Function IsWindowVisible Lib "user32" (ByVal hwnd As Long) As Long Dim dwReturn As Long Const SW_HIDE = 0 Const SW_SHOWNORMAL = 1 Const SW_SHOWMINIMIZED = 2 Const SW_SHOWMAXIMIZED = 3 Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, _ ByVal nCmdShow As Long) As Long Public Function fAccessWindow(Optional Procedure As String, Optional SwitchStatus As Boolean, Optional StatusCheck As Boolean) As Boolean 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 If IsWindowVisible(hWndAccessApp) = 1 Then fAccessWindow = True End If End Function
- Marcado como respuesta JM_cat sábado, 15 de diciembre de 2012 22:29
Todas las respuestas
-
Hola!
si el "back end" (es decir la base de datos de tablas) se abre será porque tu de algún modo lo haces, no tiene porque abrirse por si solo.
Por cierto que, a menos que contenga código, no hay necesidad de compilarlo.
Saludos a todos desde Huelva
http://www.mvp-access.es/emilio/ -
Hola, buenos dias.
Cierto, observando mejor he visto que quien realmente abre el Access es el programa principal, lo que ya no se es el porque ya que en ningun sitio he puesto codigo para que eso ocurra "queriendo" y mucho menos como evitarlo.
Entre otras cosas lo he intentado con este codigo puesto en "al cargar" del FRM que se abre al inicio del programa, pero no hace nada.
DoCmd.SelectObject acTable, , True
DoCmd.RunCommand acCmdWindowHide¿Alguna sugerencia?
Gracias
-
-
Hola
Mira a ver sí esto te ayuda:
http://www.access-programmers.co.uk/forums/showthread.php?t=118483
Salu2,
José Mª Fueyo [MS MVP Access]
-
Muchas gracias por la aportacion pero con paciencia y buscando por ahi he encontrado esta solucion que no esta nada mal, sigue viendose como se abre Access pero se esconde al momento.
Esta linea hay que colocarla en el formulario que abre el programa.
fAccessWindow "Hide", False, False
Y esta otra parte hay que colocarla en un modulo y listo, efecto conseguido.
Private Declare Function IsWindowVisible Lib "user32" (ByVal hwnd As Long) As Long Dim dwReturn As Long Const SW_HIDE = 0 Const SW_SHOWNORMAL = 1 Const SW_SHOWMINIMIZED = 2 Const SW_SHOWMAXIMIZED = 3 Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, _ ByVal nCmdShow As Long) As Long Public Function fAccessWindow(Optional Procedure As String, Optional SwitchStatus As Boolean, Optional StatusCheck As Boolean) As Boolean 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 If IsWindowVisible(hWndAccessApp) = 1 Then fAccessWindow = True End If End Function
- Marcado como respuesta JM_cat sábado, 15 de diciembre de 2012 22:29