Boa tarde Sr. Avelino, muito obrigado pelas Boas Vindas e pelo pronto atendimento na madrugada. Verifiquei seu artigo e não encontrei uma maneira de fazer a contagem dos valores que são repetidos neste meu relatório.
O campo NipenDetento pode se repetir várias vezes no dia. Eu preciso que na contagem desse campo, mesmo que tenha 5 vezes repetido no relatório, seja considerado apenas 1. Já consegui ocultar as repetições, assim, aparece só uma vez o NipenDetento e na outra coluna os nomes dos visitantes do referido detento.
Estou usando o Contar(*), está contando certo as quantidades por dia, mas a informação que preciso é de quantos detentos recebem visitas por dia e também quantas visitas por dia entram, além do total geral no período. Seria mais ou menos assim:
Visitas do dia 10/04/2015 à 12/04/2015
visitas do dia 10/04/2015
NipenDetento: Nome Visita:
346778 - Pedro Visita 1
346778 - Pedro Visita 2
346778 - Pedro Visita 3
778346 - André Visita 1
778346 - André Visita 2
837764 - João Visita 1
03 06
visitas do dia 11/04/2015
123456 - Paulo visita 1
234567 - Luis visita 1
345678 - Joaquim visita 1
456789 - Joaquim visita 2
456789 - Joaquim visita 3
456789 - Joaquim visita 4
567891 - Pedro visita 1
567891 - Pedro visita 2
04 08
visitas do dia 12/04/2015
198765 - Tiburcio visita 1
198765 - Tiburcio visita 2
01 02
08 16
O código que gera o relatório por datas é este:
Option Compare Database
Option Explicit
'Este Código foi uma colaboração do Sr. Alexandre Neves, do Fórum MaximoAccess.
Private Sub TxtDataFim_AfterUpdate()
Dim dtData As Date, Rst As DAO.Recordset
If IsNull(TxtDataInicio) Or IsNull(TxtDataFim) Then
MsgBox "As datas inicial e final devem ser preenchidas."
ElseIf TxtDataInicio > TxtDataFim Then
MsgBox "A data inicial tem que ser anterior à data final."
Else
CurrentDb.Execute "DELETE * FROM tdfVisitas;"
For dtData = TxtDataInicio To TxtDataFim
Set Rst = CurrentDb.OpenRecordset("SELECT Nipen, NomeVisitante, Parentesco, NipenDetento, NomeDetento, Resid, DiaSemana, Horario FROM Cad_visitantes WHERE Inativo=False AND Multiplo15(DateDiff('d',PrimeiraVisita,#" & Format(dtData, "mm-dd-yyyy") & "#)) ORDER BY ContadorAccess;")
Do While Not Rst.EOF
CurrentDb.Execute "INSERT INTO TdfVisitas(Nipen, NomeVisitante, Parentesco, NipenDetento, NomeDetento, Resid, DiaSemana, Horario, DataVisita) VALUES ('" & Rst("Nipen") & "','" & Rst("NomeVisitante") & "','" & Rst("Parentesco") & "','" & Rst("NipenDetento") & "','" & Rst("NomeDetento") & "','" & Rst("Resid") & "','" & Rst("DiaSemana") & "','" & Rst("Horario") & "',#" & Format(dtData, "mm-dd-yyyy") & "#);"
Rst.MoveNext
Loop
Next
DoCmd.OpenReport "Visitas", acViewPreview
DoCmd.Maximize
End If
End Sub
Agradeço se puder me dizer como posso resolver.
Atenciosamente,
André