Antonybrazil 15/9/2011, 16:27
Bom dia! Tenho trabalhado muito com consultas ultimamente e notei uma caracterisca dos campos calculados nestas consultas. Quando tenho um campo calculado proveniente de uma data, mesmo eu usando a função FORMAT para indicar o formato da data, o acess não ordena tais campos corretamente. Essa falta de ordenação correta é devido ao fato do access não reconhecer uma data como sendo maior que outra.
A questão é que estes campos calculados a partir de datas são tidos como tipo de dados "TEXTO" e o format só vai ordenar corretametne esses campos se for colocado no formato "yyyy/mm/dd".
UltimaData: Format(DMáx("[data]";"DetalhesCD4eCV";"[codigodetalhes] =" & [Codigo] & "");"yyyy/mm/dd")
Mas e se eu querer usar um filtro num relatório para filtrar datas acima de uma DataLimite. Ficaria assim:
Me.Filter = "UltimaData > #" & Format(DataLimite, "yyyy/mm/dd") & "#"
Me.FilterOn = True
NÃO!
Pois você esta afirmando com o uso da cerquilha/tralha (#) que a Ultimadata é um campo DATA. Logo o resultado o filtro sai errado.
Utilizamos então o formato de tipo de dados TEXTO:
Me.Filter = "UltimaData > '" & Format(DataLimite, "yyyy/mm/dd") & "'"
A questão é: Como dizer ao access que o campo calculado se trata de um campo tipo de dados DATA? Como afirmo a função format não faz isso.
Obrigado e aguardo dicas