Looks pretty close... This is how I do it (VS2010).
Dim crDoc As CrystalDecisions.CrystalReports.Engine.ReportClass
Dim pvParamValue As New CrystalDecisions.Shared.ParameterValues
Dim pdvParamDiscreteValue As New CrystalDecisions.Shared.ParameterDiscreteValue
crDoc = new CRYSTALREPORTNAME
pdvParamDiscreteValue.Value = FIELDNAME.tostring
pvParamValue.Add(pdvParamDiscreteValue)
crDoc.DataDefinition.ParameterFields("@P_PARAMETERNAME").ApplyCurrentValues(pvParamValue)