Tiago, no meu project, dentro do Crystal Reports, menu <File>, desabilitei <Save data with Report>.
No menu <DataBase>, habilitei <Verify on every print>. Menu <Set Location>, DataBase=nome da tabela. Opção <Same as report>.
O relatório imprime na tela todos os registros do "Anderson", entre uma data e outra. Conforme falei, basta acrescentar um registro (ou excluir um registro) na tabela que o relatório fica atualizado.
Eis o código que é disparado ao clicar no menu:
Private Sub mnuFolha_Tela_Anderson_Click()
Dim DataInicio, DataFinal As String
Dim txtDataInicio As String, txtDataFinal As String
Dim Info As String, Pergunta As String
Pergunta = MsgBox("Confirma exibir a folha" & Chr(13) & _
"complementar do Anderson?", vbYesNo + vbQuestion, "Folha complementar - Anderson")
If Pergunta = vbNo Then
Exit Sub
End If
txtDataInicio = InputBox("Informe a data inicial" _
& Chr(13) & "no formato dd/mm/yyyy. Ex.: 16/05/2004.", "Folha complementar - Anderson")
If Len(txtDataInicio) = 0 Then Exit Sub
While Not IsDate(txtDataInicio)
MsgBox "Você digitou " & txtDataInicio & " !..." _
& Chr(13) & "Tente novamente...", vbQuestion, "Data no formato dd/mm/aaaa"
txtDataInicio = InputBox("Entre com a data inicial.")
If Len(txtDataInicio) = 0 Then Exit Sub
Wend
txtDataFinal = InputBox("Você informou como data inicial de saída" & Chr(13) & _
txtDataInicio & ". Informe agora a data final.", "Folha complementar - Anderson")
If Len(txtDataFinal) = 0 Then Exit Sub
While Not IsDate(txtDataFinal)
MsgBox "Você digitou " & txtDataFinal & " !..." _
& Chr(13) & "Tente novamente...", vbQuestion, "Data no formato dd/mm/aaaa"
txtDataFinal = InputBox("Você digitou " & txtDataInicio & " como" _
& Chr(13) & "data inicial. Entre com a data final.")
If Len(txtDataFinal) = 0 Then Exit Sub
Wend
Info = "ANDERSON"
Info = StrConv(Info, 3)
DataInicio = Format(txtDataInicio, "yyyy,mm,dd")
DataFinal = Format(txtDataFinal, "yyyy,mm,dd")
Dim rptData As String
'formula a ser usada
rptData = "{Tecnicos.Data}" 'nome da tabela utilizada no banco de dados.
Dim Nome As String
Nome = "{Tecnicos.Nome}" 'nome do campo na tabela.
Dim rptSelecao As String
rptSelecao = rptData & " in Date(" & DataInicio & ") to Date (" & DataFinal & ") And {Tecnicos.Nome}='" & Info & "'"
CrystalReport1.ReportFileName = "C:Arquivos de programasSistema Informatizado Dim EletronicaComplemento.rpt"
CrystalReport1.SelectionFormula = rptSelecao
CrystalReport1.WindowState = crptMaximized
CrystalReport1.SortFields(0) = "+{Tecnicos.Data}"
CrystalReport1.SortFields(1) = "+{Tecnicos.Tipo}"
CrystalReport1.Destination = crptToWindow
CrystalReport1.Action = 1
Screen.MousePointer = vbDefault
End Sub
bfn...