La Web del Programador: Comunidad de Programadores
 
    Pregunta:  7504 - CONECTARSE A CRYSTAL 7 DESDE VB 6 USANDO ADO
Autor:  Antonio
Alguien sabe como conectar dinámicamente un control Crystal 7 a SQL 7 en VB 6 sin ODBCs, es decir usando una cadena de conexión? me han dicho que el control crystal soporta ADO....
Espero que alguien que tuviese codigo para hacer esto o conoce del tema, me pueda ayudar...

Gracias y Saludos.

  Respuesta:  Mauricio Solano G.
Hola amigo. La forma en que lo hago es un poco larga pero muy útil.
Creas el reporte en Crystal. Luego puedes invocarlo desde VB en un sub.

Algo así:

'rpt es el nombre del ActiveX de Crystal
With rpt
.Connect = TuObjetoDeBaseDeDatos.ConnectionString
.ReportFileName = App.Path & "\Reporte.rpt"
.WindowTitle = "El título que quieras"
.SelectionFormula = SQL 'SQL es una variable string que
'contiene un SQL que quisieras
'para restringir la información que quieres
'mostrar en el reporte.
'Las siguientes 5 líneas son sobre la ubicación del preview del informe
.WindowLeft = 1
.Destination = 0
.WindowTop = 2
.WindowWidth = 790
.WindowHeight = 560

'Ejecuta el reporte
.Action = 1
End With

La idea principal es que Connect = BaseDeDatos.ConnectionString te proporciona una conexión dinámica al poder cambiar la dirección de la base de datos cuando lo desees. Yo personalmente me conecto a la base de datos mediante un archivo DSN, el cual me facilita también cambiar la dirección del servidor sin afectar el ejecutable.

Espero te sirva de algo.

  Respuesta:  Guillermo Molina
para utilizar ADO con crystal tenes que utilizar que definir los reportes como active data (solamente definiciones de campos). es otro concepto y no vas a poder ver el preview de ellos pero es más rapido para la impresion en el sitio de seagate software hay ejemplos de ellos si no los encontras escribime y te los mando