Hola
Entonces si sabes como pasarle del reporte principal al subreporte un parametro(es decir que linkeas el parametro del reporte al subreporte), para enviarle desde vb.net un parametro el principal usas "SetParameterValue", aca podes ver un ejemplo:
Código PHP:
creo una variable string donde almaceno la direccion del archivo Crystal Report
Dim Direccion As String = Application.StartupPath & "\cr_informe.rpt"
'creo una nueva instancia de mi informe
'que obviamente está incluido en mi proyecto
Dim oRptInforme As New cr_informe
'###########################################
'y aqui la linea importante
'al nuevo objeto oRptInforme le indico donde está el archivo físico
'por alguna razón que aún no comprendo
oRptInforme.FileName = Direccion
'###########################################
'Luego pasamos los parametros necesarios
oRptInforme.SetParameterValue("@Fecha", Fecha)
oRptInforme.SetParameterValue("@VentaTipo", Venta_Tipo)
'y por último se lo asigno al CrystalReportView, quien es el encargado final
'de mostrarlo en toda su magnificencia.
CrystalReportViewer1.ReportSource = oRptInforme
CrystalReportViewer1.Show()