Access - CONFLICTO DE LIBRERIAS

 
Vista:

CONFLICTO DE LIBRERIAS

Publicado por jesus (60 intervenciones) el 18/10/2004 10:10:33
Tengo una aplicación desarrollada en VBA que funciona perfectamente en Office XP pero al intentar compilarla para Office 2000, se crea un conflicto con la librería Windows Common Controls 6.0 (que necesito debido a que utilizo varios controles Treeview y Listview) y no me reconoce los objetos Recoedset. Si quito esa librería puedo compilar sin problemas pero con ella me da un error de compilación cada vez que aparece un Recordset. El problema es que no puedo quitarla, es necesaria.
Si alguien sabe como resolverlo, agradeceria mucho su ayuda, es muy urgente.
Gracias
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 Alejandro

Solución para conflicto de librerías

Publicado por Alejandro (4142 intervenciones) el 12/05/2023 20:31:05
Hola, Jesús

El conflicto de librerías que estás experimentando al compilar tu aplicación en Office 2000 puede ser resuelto utilizando una técnica llamada "Early Binding" y "Late Binding". A continuación, te explicaré cómo puedes implementar esta solución:

1. Abre tu proyecto de VBA en Access.
2. Ve a la ventana de código y selecciona la referencia a la librería "Microsoft Windows Common Controls 6.0". Desmarca la casilla para eliminar la referencia.
3. Modifica tu código VBA para utilizar la técnica de "Late Binding" en lugar de "Early Binding". Esto significa que en lugar de declarar los objetos con tipos específicos de librerías, los declararás como objetos genéricos y los instanciarás dinámicamente en tiempo de ejecución.

Por ejemplo, en lugar de utilizar la declaración de objeto específico como:

1
Dim rs As Recordset

Puedes utilizar:

1
2
Dim rs As Object ' Declaración genérica del objeto
Set rs = CreateObject("ADODB.Recordset") ' Instanciación del objeto en tiempo de ejecución

Esto permitirá que tu código se ejecute sin errores de compilación en Office 2000, ya que no dependerá de la librería específica que estaba causando el conflicto.

Es importante tener en cuenta que, al utilizar "Late Binding", no tendrás acceso a los métodos y propiedades específicos de la librería Windows Common Controls 6.0. Sin embargo, si solo utilizas controles Treeview y Listview básicos, deberías poder trabajar con las funcionalidades básicas que proporciona Access sin problemas.

Espero que esta solución te ayude a resolver el conflicto de librerías en tu aplicación de VBA. Recuerda hacer pruebas exhaustivas para asegurarte de que todo funciona correctamente en Office 2000. ¡Buena suerte!
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