La Web del Programador: Comunidad de Programadores
 
    Pregunta:  7895 - COMO PASAR UN PARAMETRO CONNECTION A UN CONTROL ACTIVEX
Autor:  Juan Eusebio Gonzalez Estevez
Estoy construyendo un control activeX con acceso a datos, lo he diseñado para que utilize una conexión general que tendra la aplicación que lo utilize, esta le pasara por parametro al control una referencia de dicha conección debe ser declarada como:
Public gcnMain As Connection
¿Si sabes como hacerlo ó conoces una alternativa que no sea crear la conneción dentro del control ActiveX te lo agradecere?
Gracias de antemano y quedo esperando respuesta.

  Respuesta:  Jhonny Fonseca
si quieres tener una referencia a la conexion puedes crear una varia de tipo conexion e instancearla de la siguiente manera:

Public Function Conexion(cn As Connection)
set ConexionInterna= cn
End Function

el problema con esto es que si la variable interna (ConexionInterna), es cerrada, la variable que se envio como parametro (cn) tambien se cerrara, para evitar esto hay que utilizar lo siguiente:

Public Function Conexion(cn As Connection)
set ConexionInterna= new cn
End Function

ahora, si no quieres usar una variable de conexion puedes darle al recordset o la command la referencia a la conexion de esta manera:

Dim Rs As New Recordset
Dim Command As New Command
Public Function Abrir(cn As Connection)
Rs.ActiveConnection = cn
Command.ActiveConnection = cn
End Function

EN TODOS LOS CASOS NO SE HACE OTRA CONEXION, SE HACE UNA REFERENCIA PERO NO UNA NUEVA CONEXION A LA BASE DE DATOS

Espero que te sirva