Use the CRAXDRT objects to set the parameters (and anything else you need, like login information).

This sample code Opens, Sets two Parameters and then Shows the report on a Form that contains the Crystal Viewer control. In this case the two parameters are "Discrete" Date values that the user chosen from Date Picker controls.

VB Code:
  1. Dim objCrystal As CRAXDRT.Application 'its better to create this object global to the VB application.
  2.     Dim objReport As CRAXDRT.Report
  3.     Dim objParam As CRAXDRT.ParameterFieldDefinition
  4.  
  5.     Set objCrystal = New CRAXDRT.Application
  6.     Set objReport = objCrystal.OpenReport(FileName, 1)
  7.  
  8.     Set objParam = objReport.ParameterFields.GetItemByName("@FromDate")
  9.     objParam.ClearCurrentValueAndRange
  10.     objParam.AddCurrentValue dtpFromDate.Value
  11.    
  12.     Set objParam = objReport.ParameterFields.GetItemByName("@ToDate")
  13.     objParam.ClearCurrentValueAndRange
  14.     objParam.AddCurrentValue dtpToDate.Value
  15.    
  16.     With frmReportViewer
  17.         If Len(ReportTitle) > 0 Then
  18.             .Caption = ReportTitle
  19.         End If
  20.         .ReportViewer.ReportSource = objReport
  21.         .ReportViewer.ViewReport
  22.         .Show
  23.         .ZOrder vbBringToFront
  24.     End With

Note I only have Crystal 8.5 but the code should be similar for 9.