Access - Minimizar Access 64 bits

 
Vista:
sin imagen de perfil
Val: 10
Ha aumentado su posición en 3 puestos en Access (en relación al último mes)
Gráfica de Access

Minimizar Access 64 bits

Publicado por Jorge (5 intervenciones) el 09/08/2017 18:27:12
Hola a todos, buen día !!!
Estoy terminando una base de datos en Access 2013 de 64 bits.
Necesito hacer una pantalla de inicio de la base y que, al abrirse se oculte la ventana de Access.
Para ello diseñé la pantalla con atributos Emergente y Modal y luego agregué el siguiente módulo que encontré en una respuesta en esta misma Web:

1
2
3
4
5
6
7
8
9
10
11
12
Option Compare Database
Option Explicit
Global Const SW_HIDE = 0
Global Const SW_SHOWMAXIMIZED = 3
Private Declare Function apiShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
 
'Deshabilita la Pantalla de Access 
Function fSetAccessWindow(nCmdShow As Long)
Dim loX As Long
Dim loForm As Form
loX = apiShowWindow(hWndAccessApp, nCmdShow)
End Function

Y en Eventos del formulario, coloqué en "Al abrir"

1
2
3
Private Sub Form_Open(Cancel As Integer)
fSetAccessWindow (0)
End Sub

El tema es que al tratar de abrir el formulario me aparece el siguiente mensaje de error:

"El código de proyecto se debe actualizar para usarse en sistemas de 64 bits. Revise y actualice las instrucciones Declare y a continuación márquelas con el atributo PtrSafe."

Necesitaría saber cómo hacer esto para resolver el problema.

Desde ya muchas gracias a quien me pueda dar una mano.
Jorge
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Capatech.CL
Val: 293
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Minimizar Access 64 bits

Publicado por Capatech.CL (121 intervenciones) el 10/08/2017 15:21:21
Debes colocar el código asi,
1
2
3
4
5
6
7
8
9
10
11
12
Option Compare Database
Option Explicit
Global Const SW_HIDE = 0
Global Const SW_SHOWMAXIMIZED = 3
Private Declare Function ptrsafe apiShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
 
'Deshabilita la Pantalla de Access 
Function ptrsafe fSetAccessWindow(nCmdShow As Long)
Dim loX As Long
Dim loForm As Form
loX = apiShowWindow(hWndAccessApp, nCmdShow)
End Function

Y en Eventos del formulario, coloqué en "Al abrir"

1
2
3
Private Sub Form_Open(Cancel As Integer)
fSetAccessWindow (0)
End Sub

Aunque yo te recomendaria mejor que utilices el Access Runtine de 64 bits porque cuando vayas a previsualizar los reportes te pueden dar problemas y no te permitira verlos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 10
Ha aumentado su posición en 3 puestos en Access (en relación al último mes)
Gráfica de Access

Minimizar Access 64 bits

Publicado por Jorge (5 intervenciones) el 13/08/2017 23:18:34
Muchas gracias por tu respuesta Capatech !

Lamentablemente el código tampoco me funcionó (me sigue dando el mismo error), y además, como instalé la nueva versión de MS Office 365 Pro de 64 bits, el runtime que me señalabas tampoco lo puedo instalar porque hay una incompatibilidad en el método de clik.

De todos modos, seguiré insistiendo y mientras tanto trabajaré con un autoexec que maximice la ventana de inicio de la base, con lo cual queda oculta la de Access.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Minimizar Access 64 bits

Publicado por Enrique (1 intervención) el 25/04/2019 17:25:28
Perdón por revivir un tema tan viejo. Hace bastante tiempo llevo usando este código y me iba muy incluso en una máquina con Windows 10 64 bits con Office 2019 64 bits me lo reconocía sin más. Justo hoy que me toca una máquina con Windows 7 64 bits y Office 2016 64 bits. Me aparecio la misma leyenda:

"El código de proyecto se debe actualizar para usarse en sistemas de 64 bits. Revise y actualice las instrucciones Declare y a continuación márquelas con el atributo PtrSafe."

Y en la misma leyenda esta la solución:

En la línea
1
Private Declare Function apiShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

Debe quedar PtrSafe antes Function y es así como queda:

1
Private Declare PtrSafe Function apiShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

Es la única modificación que se debe realizar, guarda y el código anda perfecto. Ignoro porque en Windows 10 y con Office 2019 jamás me solicito dicha actualización a código. Pero le dejo la solución por si alguno más se lía con eso.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar
sin imagen de perfil
Val: 10
Ha aumentado su posición en 3 puestos en Access (en relación al último mes)
Gráfica de Access

Minimizar Access 64 bits

Publicado por Jorge (5 intervenciones) el 25/04/2019 20:06:08
Perdón, acabo de valorar la respuesta pero me quedó en "1".
Mi valoración es un 10 pero no lo puedo cambiar.
Saludos cordiales y muchas gracias por la aclaración !!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 4
Ha disminuido su posición en 22 puestos en Access (en relación al último mes)
Gráfica de Access

Minimizar Access 64 bits

Publicado por Lobezno (1 intervención) el 12/11/2019 10:00:00
Hola, la verdad que me pasa por no leer, gracias a tu comentario he visto que la solucion era tan simple como poner el PtrSafe, pero continuo con mas problemas de ese estilo, son funciones de abrir una ventana para asignar una foto, en 32 bits funcionan en 64 me dice el mismo comentario pese a poner el PtrSafe...

Luego os copio el código a ver si podeis orientarme
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Minimizar Access 64 bits

Publicado por max (1 intervención) el 25/11/2019 05:39:25
hola buenas noches puede ser que a veces ademas de usar el PtrSafe deberas definir el campo asi LongPtr ejemplo:
si lo tienes de esta forma:
- Declare PtrSafe Function GetActiveWindow Lib "user32" () As Long

deberas colocarlo de esta forma:
Declare PtrSafe Function GetActiveWindow Lib "user32" () As LongPtr

si estas trabajando en un office de 64 bit para que no te genere problemas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar