Aki te dejo un pequeño ejemplo aunque yo utilizo cristal report 10 pero en ecencia debe ser lo mismo
claro con un report externo con un DNS (ODBC) para su facil manejo en mi caso esta con una database de Sql Server
en el form
Public m_Application As New CRAXDDRT.Application
Dim m_Report As CRAXDDRT.Report
Dim FileReport As String
FileReport = App.Path + "\REPORTES\ESTUDIANTE_DATOS.rpt" 'ruta del report
Set m_Report = m_Application.OpenReport(FileReport, 1)
m_Report.Database.Tables(1).SetLogOnInfo "DNSName", "Database", "usuario", "pssword"
SQL = "{ESTUDIANTE_PRINT.CampoFiltro} = '" & (DBCCodigo.Text) + "'"
'**********************************
Set SectD = Nothing
Set SectD = m_Report.Sections("PH") ' Aqui va el nombre corto de la sección donde va a salir la foto en el reporte (si vas a enviar una foto o imagen )
'**********************************
FileReport = FileReport
Set m_Report = m_Report
m_Report.RecordSelectionFormula = SQL
FormX.Show 'En este Formulario agregas este componente el CRViewer1 para visualizar el report
Oh se me olvidaba en el FormX va este codigo
Private Sub Form_Resize()
On Error Resume Next
CRViewer1.Top = 0
CRViewer1.Left = 0
CRViewer1.Height = ScaleHeight
CRViewer1.Width = ScaleWidth
End Sub
esta es una forma de las mas facil de hacerlo eso creo antes lo tenia en el mismo codigo pero con el report externo se me hace mejor por la razon de las mejoras o cambios que se hacen o te solicitan.
Talves te sirva de algo
Saludos...