Ocultar area de trabajo access 64 bits

Quiero ocultar el área de trabajo y navegar solo con formularios. Tengo el siguiente módulo VB que he insertado en el evento "al brir" de un formulario en blanco que he creado,

Pero no funciona. Me lo podeis corregir o facilitarme uno que funciones

2 Respuestas

Respuesta
2

El problema es que la llamada a la función la haces en la parte de declaraciones, no dentro de un procedimiento. Te faltaría un Private Sub.... (el evento que sea) antes del primer Call ShowWindow

Tendría que quedarte así:

Option Explicit
Const SW_HIDE = 0
Const SW_NORMAL = 1
Const SW_MINIMIZED = 2
Const SW_MAXIMIZED = 3
Private Declare PtrSafe Function ShowWindow Lib "user32" _
(ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Sub Form_Open(Cancel As Integer)  '<- Esta es la linea que te falta
Call ShowWindow(hWndAccessApp, SW_HIDE)
DoCmd.OpenForm "FPortada", windowmode:=acDialog
End Sub
Private Sub Form_Unload(Cancel As Integer)
Dim lngRetCode As Long
lngRetCode = ShowWindow(hWndAccessApp, SW_MAXIMIZED)
End Sub

Ya me funciona, pero cuando desde el formulario principal intento abrir un informe se bloquea y tengo que reiniciar el ordenador. Que solución tiene esto.Como siempre, muchas gracias y un saludo

Los informes son "bichos raros" en Access y su funcionamiento no es exactamente igual. Como yo no oculto nunca el entorno de Access (me parece que presenta más problemas que ventajas aporta), no te sabría decir una solución, pero buscando un poco por otros foros:

http://www.mvp-access.com/foro/topic84466_post508302.html#508302 

https://www.lawebdelprogramador.com/foros/Access/1692789-Abrir-formulario-en-modo-hoja-de-datos-con-ventana-Access-oculta.html#last 

https://nksvaccessolutions.com/Foro/viewtopic.php?t=760 

¡Gracias!  y no me cansaré de dártelas. Un poco de aquí y otro poco de allá, y esto funciona como yo quería. Espero que siga así. No entiendo como os gusta tan  poco esto de ocultar el entorno de trabajo.

Bueno pues hasta el próximo charco.

Un abrazo y de nuevo gracias.

Respuesta
2

Por partes. Para ocultar el entorno Acces yo uso un modulo, que en este caso se llama Módulo1, tal que

Option Compare Database
Global Const SW_HIDE = 0
Global Const SW_SHOWMINIMIZED = 2
Global Const SW_SHOWMAXIMIZED = 3
Private Declare PtrSafe Function apiShowWindow Lib "user32" _
    Alias "ShowWindow" (ByVal hwnd As Long, _
          ByVal nCmdShow As Long) As Long
Function fSetAccessWindow(nCmdShow As Long)
Dim loX  As Long
Dim loForm As Form
        loX = apiShowWindow(hWndAccessApp, nCmdShow)
End Function

Luego en el evento Al abrir del formulario

¡Gracias!  Entre unos y otros, un poco por aquí y otro poco por allá, he conseguido que funcione como había pretendido.

Así que hasta la próxima duda.

Recibe un cordial saludo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas