This is how I execute report in Crystal from VB6 Set cr1 = New crAdvancesToCustomersAccounting Set cn = ADOConnect(sDBServer, sDBName) Set rs1 = cn.Execute("pr_AdvancesToCustomersSLAccountingReport '" & sBuyerCode & "'") cr1.Database.SetDataSource rs1 cr1.ReadRecords ... then the report will display now.Public Function ADOConnect(s_DBServer As String, s_DBName As String) As ADODB.Connection On Error GoTo ErrorTrap Dim cnNew As New ADODB.Connection Set cn = Nothing Set ADOConnect = Nothing cnNew.CursorLocation = adUseClient cnNew.CommandTimeout = 0 cnNew.Provider = "SQLOLEDB" cnNew.Open "Server=" & s_DBServer & ";Database=" & s_DBName, "SA", "" If cnNew.State = adStateClosed Then GoTo ErrorTrap Else Set ADOConnect = cnNew End IfExit FunctionErrorTrap: Set ADOConnect = Nothing ErrorHandler "E0001"End Function