|
Buenos días a tod@s.
Estoy trabajando en un programa que se compone de un Access, que utilizo como programa principal, y que llama a un segundo Access que contiene un Mapa al que se puede acceder desde distintas pantallas del programa principal. Además, el programa principal es el genérico para todos mis clientes y el Mapa es particular para cada cliente, por eso lo tengo separado en dos mdb's.
El caso es que en los equipos que tienen instalada la Runtime de Access 2007 no funciona la llamada al segundo Access (el que contiene el mapa). Sin embargo, en los equipos con Access instalado, funciona sin problemas.
Por lo que he podido leer por Internet, y si no lo he entendido mal, Las Runtimes de Access no permiten la automatización de otro Objeto Access. ¿Sabéis si esto es así?
Hasta el momento sólo he conseguido abrir el Access del mapa, sin que de problemas con la Runtime, usando ShellExecute(), pero necesito crearme un objeto Access.Application al hacer la llamada al mapa para pasarle el usuario validado en el programa principal y su categoría y la pantalla desde la que se hace la llamada al mapa para abrirlo de una manera u otra.
Os paso el código que estoy usando por si se os ocurre algo:
Dim AplicAccess As Access.Application Dim RutaMapa As String
'Prueba 1: No funciona con Runtime 'Set AplicAccess = GetObject(RutaMapa) '********************************* 'Prueba 2: No funciona con Runtime 'Set AplicAccess = CreateObject(RutaMapa) '********************************* 'Prueba 3: No funciona con Runtime 'Set AplicAccess = New Access.Application 'AplicAccess.OpenCurrentDatabase RutaMapa '*********************************
AplicAccess.Run "PonValoresUsuario", glUsuario, glCategoria AplicAccess.DoCmd.OpenForm "Form_Mapa"
If EstaCargado("Form_Listado") = True Then AplicAccess.Run "Marcar_Seleccion_Mapa", "Form_Listado", True Else AplicAccess.Run "Marcar_Seleccion_Mapa", "Form_Ficha", False End If
¿Sabéis si hay otra forma de cargar un objeto Access.Application?
Por cierto, el código que sí me abre el Access el mapa con la Runtime es:
Call ShellExecute(hWndAccessApp, vbNullString, RutaMapa, vbNullString, vbNullString, 1)
Muchas gracias por vuestro tiempo.
Saludos,
Soraya
------------- Saludos
|