abro meus reports no CR9 desta maneira.
Sub Print_Relatorio_CR(sReport$, strSQL$)
On Error GoTo erro
Dim ADOrst As ADODB.Recordset
Dim strProvider$, i%,LcRPT$
Screen.MousePointer = 11
LcRPT = Parametros.strlocalRelat & "elatorios" & sReport
Set crxApp = New CRAXDRT.Application
Debug.Print LcRPT
Debug.Print strSQL
Set crxApp = CreateObject("crystalruntime.application")
Set crxRpt = crxApp.OpenReport(LcRPT)
Dim Tabela As CRAXDRT.DatabaseTable
Dim Propriedades As CRAXDRT.ConnectionProperties
Screen.MousePointer = vbHourglass
Frm_CRPT.CRViewer9.ReportSource = crxRpt
Set ADOrst = New ADODB.Recordset
ADOrst.Open strSQL, Conexao, adOpenDynamic, adLockOptimistic
If ADOrst.EOF Then
MsgBox "Não há itens para impressão!", vbCritical, "Relatórios"
GoTo erro
End If
DoEvents
For Each Tabela In crxRpt.Database.Tables
Set Propriedades = Tabela.ConnectionProperties
'strProvider = Conexao.Provider
Propriedades.DeleteAll
Propriedades.Add "Provider", Conexao.Provider
Propriedades.Add "DSN", DSNName
Propriedades.Add "data source", ADOrst.DataSource
Next
crxRpt.Database.SetDataSource ADOrst
crxRpt.ReadRecords
'crxRpt.tex
crxRpt.PaperSize = crDefaultPaperSize
Frm_CRPT.CRViewer9.DisplayGroupTree = False ' arvore na lateral
Frm_CRPT.CRViewer9.DisplayTabs = False ' tabs
Frm_CRPT.CRViewer9.DisplayToolbar = True ' barra de ferramentas
Frm_CRPT.CRViewer9.EnablePrintButton = True
Frm_CRPT.CRViewer9.EnableExportButton = True
Frm_CRPT.CRViewer9.EnableHelpButton = False
Frm_CRPT.CRViewer9.EnableNavigationControls = True
Frm_CRPT.CRViewer9.EnableRefreshButton = False
Frm_CRPT.CRViewer9.EnableSearchControl = False
Frm_CRPT.CRViewer9.EnableZoomControl = True
Frm_CRPT.CRViewer9.EnablePopupMenu = False
Frm_CRPT.CRViewer9.DisplayBorder = False
Frm_CRPT.CRViewer9.PrintReport
Frm_CRPT.CRViewer9.Refresh
'Frm_CRPT.CRViewer1.e
'Frm_CRPT.CRViewer9.WindowShowPrintSetupBtn = True
Frm_CRPT.CRViewer9.ViewReport
DoEvents
Frm_CRPT.CRViewer9.Refresh
Screen.MousePointer = vbDefault
Frm_CRPT.Show 1