** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Cambio de 32 bits a 64 bits
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoCambio de 32 bits a 64 bits

 Responder Responder
Autor
Mensaje
Entrenador10 Ver desplegable
Habitual
Habitual


Unido: 27/Mayo/2010
Estado: Sin conexión
Puntos: 59
Enlace directo a este mensaje Tema: Cambio de 32 bits a 64 bits
    Enviado: 16/Septiembre/2020 a las 11:46
Buenos días, tengo una aplicación en Access 2010 de 32 bits que la he convertido para Access 2010 de 64 bits.

Ya tengo depurado todo el código. Sólo me resta convertir el módulo que adjunto. Al depurarlo me señala un error en el campo marcado en amarillo y me sale una ventana emergente donde indica que no coinciden los tipos. ¿Cómo puedo solucionarlo? Muchas gracias.

Private Function HandleToDeviceID(hDevice As Long) As String

    Dim strDeviceID As String

    Dim cDeviceID   As Long

 

    If CM_Get_Device_ID_Size(cDeviceID, hDevice, 0) = 0 Then

        strDeviceID = Space(cDeviceID)

 

        If CM_Get_Device_IDA(hDevice, StrPtr(strDeviceID), cDeviceID, 0) > 0 Then

            strDeviceID = StrConv(strDeviceID, vbUnicode)

            strDeviceID = Left(strDeviceID, cDeviceID)

        Else

            strDeviceID = ""

        End If

    End If

 

    HandleToDeviceID = strDeviceID

End Function

 


Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 13990
Enlace directo a este mensaje Enviado: 16/Septiembre/2020 a las 12:12
¿Y cuál es la línea amarilla?

Probablemente está esperando un tipo LongPtr en vez de un Long.
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
Entrenador10 Ver desplegable
Habitual
Habitual


Unido: 27/Mayo/2010
Estado: Sin conexión
Puntos: 59
Enlace directo a este mensaje Enviado: 16/Septiembre/2020 a las 12:39
Muchas gracias, Mihura, por tu rápida respuesta. Perdón, que al copiarlo no lo he marcado. Marca el error en StrPtr. Ayer puse el LongPtr y entonces me marcaba el error en cDeviceID. Gracias
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 13990
Enlace directo a este mensaje Enviado: 16/Septiembre/2020 a las 13:03
Eso está tirando de funciones ... API's ... postea aquí también como las has cambiado



Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
Entrenador10 Ver desplegable
Habitual
Habitual


Unido: 27/Mayo/2010
Estado: Sin conexión
Puntos: 59
Enlace directo a este mensaje Enviado: 16/Septiembre/2020 a las 13:11
Lo único que he hecho ha sido incluir el término PtrSafe en todas las instrucciones Public Function, Quedando las instrucciones así Public PtrSafe Function. Hice la prueba eliminando la instrucción que me está dando problemas, y se compiló perfectamente y funcionó bien en Access 2010 de 64 bits
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 13990
Enlace directo a este mensaje Enviado: 16/Septiembre/2020 a las 13:48
Hay que hacer mas cosas:

https://docs.microsoft.com/es-es/office/client-developer/shared/compatibility-between-the-32-bit-and-64-bit-versions-of-office

https://docs.microsoft.com/es-es/office/troubleshoot/office-suite-issues/win32api_ptrsafe-with-64-bit-support


Editado por Mihura - 16/Septiembre/2020 a las 13:49
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
Entrenador10 Ver desplegable
Habitual
Habitual


Unido: 27/Mayo/2010
Estado: Sin conexión
Puntos: 59
Enlace directo a este mensaje Enviado: 16/Septiembre/2020 a las 14:04
Genial. Reviso los dos enlaces. Muchas gracias
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable