Qual o banco que você utiliza e como está passando a informação de impressão para o crystal?
Eu uso assim no SqlServer:
'----em um módulo:
Public Aplicacao As New CRAXDRT.Application
Public Report As New CRAXDRT.Report
Public Sub Imprimir(Relatorio As String)
Set Report = Aplicacao.OpenReport(Relatorio) '***Setamos a Variavel do relatorio para pegar o Arquivo no Disco
SQL = "Provider=SQLNCLI; " & _
"Initial Catalog= AGENDASQL; " & _
"Data Source=SERVIDORSQLEXPRESS;Uid=sa; Pwd=SENHA;"
Set Report = Aplicacao.OpenReport(Relatorio) '***Setamos a Variavel do relatorio para pegar o Arquivo no Disco
Report.Database.Tables(1).SetLogOnInfo "SERVIDORSQLEXPRESS", "MEU_BD", "SA", "SENHA"
Report.VerifyOnEveryPrint = True
Report.DiscardSavedData
Report.Database.LogOnServerEx "pdsoledb.dll", "SERVIDORSQLEXPRESS", "MEU_BD", "SA", "SENHA", "OLE DB", SQL
Report.Database.Tables.Item(1).Location = "MEU_BD.dbo.CLIENTES"
With frmRelatorio
.CRViewer1.ReportSource = Report '*** Estamoa assumindo que "CRViewer1" e o Nome do Controle no Form1
.CRViewer1.ViewReport '*** O Relatorio será Visualizado entes de ser Impresso
.Show
End With
Report.VerifyOnEveryPrint = True
Screen.MousePointer = vbDefault
End Sub
'para visualizar:
Imprimir (caminho do .rpt)
Dentro do Crystal verifique também verifique em file/options/reporting:
marcado
save data with report
desmarcado
discard saved data when loading reports