Olha, colega, não sei se entendi direito mas retirei essa parte do meu código para te mostrar como eu faço:
Eu gravo os dados num arquivo texto e depois tenho duas opções: ou abro com um editor de textos qualquer, ou imprimo diretamente para impressora matricial.
Private Sub Imprime()
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile("caminhoarquivo.txt", True)
a.Close
Open "c:caminhoarquivo.txt" For Output As #1
CurrentY = 0
CurrentX = 0
Print #1, "Consulta Atendimentos de " & Wdataini.Text & " a " & Wdatafim.Text
Print #1, "===================================================================="
Print #1, Tab(1); "Data"; Tab(15); "Nome do Paciente"
Print #1, "===================================================================="
' consulta para pesquisar entre duas datas
sqlatend = "Select * From Atendimento Where data Between #" & Format(Wdataini.Text, "mm/dd/yyyy") & "# And #" & Format(Wdatafim.Text, "mm/dd/yyyy") & "# Order By data;"
Set rsatend = db.OpenRecordset(sqlatend)
If rsatend.EOF = True Then
MsgBox "Não foi encontrado nenhum registro para consultar", vbInformation, "Sem registros para consultar"
Close
Set a = Nothing
Set fs = Nothing
Exit Sub
End If
Do While rsatend.EOF = False
Print #1, Tab(1); rsatend("data"); Tab(16); rsatend("nomepaciente")
rsatend.MoveNext
Loop
Close #1
' abre o arquivo texto para visualizar (pode ser notepad ou edit ou qualquer outro)
Shell "caminho_do_programa_que_abre_arquivo_texto c:caminhoarquivo.txt"
' ou imprime diretamente para a impressora matricial
Open "c:caminhoarquivo.txt" For Input As #1
Open "LPT1" For Output As #2 ' A impressora agora esta conectada a porta LPT1
Print #2, Input(LOF(1), #1) 'imprimindo
Close
MsgBox "Impressão completada", vbInformation, "Mensagem"
Set a = Nothing
Set fs = Nothing
End Sub
Este exemplo é usando o objeto Printer.Print , VB 6.0 , conexão DAO 3.6
No caso do DataReport nunca utilizei e por isso não posso te dizer como fazer. Talvez um outro amigo nosso aqui do Fórum possa lhe dar essa dica.