RE:Crystal Report + Conexion
Try
'Dim cmd As New Odbc.OdbcCommand
Dim cadena As String
cadena = "SELECT titulo,iddocumentos,notacambio,MAX(revision) AS rev,comentario,descripcioncambio,motivocambio,formato,codigodoc,fechadist,destinatario,firmaAprob " & _
" FROM(documentos, notascambio, listasdistribucion) WHERE (num_nc = notacambio) AND (num_nc <> '') and num_nc='" & cbNC.Text & "' and iddocumentos=iddocumento" & _
" GROUP BY titulo, iddocumentos, notacambio, comentario, descripcioncambio, motivocambio, formato, codigodoc, fechadist, destinatario, firmaAprob"
'se usa un datatable y no un dataset para llenar el informe
'*************************************************************************
Dim miInforme As New CrystalReport1 'Se hace la INstancia del reporte
Dim datatableInforme As New DataTable ' se declara un datatable, porque con dataset no funciona
datatableInforme = (EjecutarProcedimiento(cadena)).Tables(0) ' aqui se hace la consulta, en mi caso lo hice con un WebService, el .Tables(0) es para pasar el dataset a datatable
miInforme.SetDataSource(datatableInforme)
Me.CrystalReportViewer1.ReportSource = miInforme
Me.CrystalReportViewer1.Visible = True
Me.CrystalReport11.SetDataSource(datatableInforme)
Me.CrystalReportViewer1.Visible = True
Catch
MsgBox(Err.Description)
End Try
Public Shared Function EjecutarProcedimiento(ByVal strConsulta As String) As DataSet ', ByVal arrParam() As Odbc.OdbcParameter) As DataSet
Dim myDataAdapter As New Odbc.OdbcDataAdapter
Dim mySelectCommand As New Odbc.OdbcCommand
Dim ds As New DataSet
Dim scnConexion As New Odbc.OdbcConnection
scnConexion.ConnectionString = cadenaCon
scnConexion.Open()
myDataAdapter.SelectCommand = mySelectCommand
mySelectCommand.CommandText = strConsulta
mySelectCommand.CommandType = CommandType.Text
mySelectCommand.Connection = scnConexion
'mySelectCommand.Parameters.AddRange(arrParam)
myDataAdapter.Fill(ds)
Return ds
End Function
Espero que te valga, échale un vistazo.