Consegui um amigo postou aqui no forum e adaptei ao meu sistema..... usei o seguinte codigo Dim DataInicio, DataFim, Convenio As String DataInicio = frmRelatorio.txtDataInicio.Text DataFim = frmRelatorio.txtDataFim.Text Convenio = "Unimed" Dim crAppl As CRAXDRT.Application, crRep As CRAXDRT.Report Set crAppl = New CRAXDRT.Application Set crRep = crAppl.OpenReport("d:\Contas de Faturamento\Relatorios\Faturamento.rpt") crRep.RecordSelectionFormula = "{Faturamento.Convenio} = """ & Convenio & """ and {Faturamento.DataEnvioFaturamento} >= DateTime('" & DataInicio & "') and {Faturamento.DataEnvioFaturamento} <= DateTime('" & DataFim & "')" 'Comando para Imprimir o Relatorio Direto.... 'crRep.PrintOut False, 1 CRViewer1.ReportSource = crRep CRViewer1.ViewReport estou temdo um outro problema, alguém já viu isso, quando abro o relatorio pelo crieviwer no vb até aí tudo certo consigo buscar os dados ao banco de dados access, mas quando mando dar um refresh para atualizar ele mosta a mesnagem (SERVER HAS NO YET BEEN OPENED) e não atualiza sendo assim ele nunca vai abrir os dados seguintes, alguém sabe de como atualizar o relatorio do crystal reports 8.5 via código para que toda vez que o relatoria abre ele mostra o que realmente esta no banco de dados access.... ate e agradeço desde-já