i dont know if it will help you but this is what i used to run my report in crystal and
vb where a bunch of variables are used to form a sql string which is executed with command and data is put in a report.
Set datcmd1 = New ADODB.Command
Set datcmd1.ActiveConnection = cnn1
datcmd1.CommandText = VehInfoRep.infosqlstr
datcmd1.CommandType = adCmdText
' Add the datasource to the report
m_Report.Database.AddADOCommand cnn1, datcmd1
Set fld = m_Report.Section3.AddFieldObject("{ado." & valarr(0) & "}", 400, 0)