Página 1 de 1

Filtrar idade em um campo calculado

Enviado: 21 Mar 2018, 13:14
por wcidrin
Tenho a seguinte função

Código: Selecionar todos

Public Function Idade(DtNasc As String) As Long
On Error Resume Next

'Calcula idade | use no form ou relatório =idade([Nome do campo])

Dim Niver As Double
Niver = CVDate(DtNasc)
Idade = Fix(DateDiff("d", Niver, Date) / 365.25)

End Function


Com ela eu calculo a idade de uma pessoa. Mas não consigo filtrar por idade na consulta.
Como fazer?

Re: Filtrar idade em um campo calculado

Enviado: 21 Mar 2018, 13:21
por Avelino Sampaio
Wiractan,

copie e cole aqui a escrita (SQL) da sua consulta, para eu entender como esta sendo feito a filtragem

Aguardamos

Re: Filtrar idade em um campo calculado

Enviado: 21 Mar 2018, 13:27
por wcidrin
Segue os dados em SQL

Código: Selecionar todos

SELECT cons_dados_completo.codigo, cons_dados_completo.bairro, cons_dados_completo.nomePessoa, cons_dados_completo.matriculado, cons_dados_completo.dataNascimento, Idade([DataNascimento]) AS Idade2
FROM cons_dados_completo
WHERE (((Idade([DataNascimento]))=40));


Detalhe muito importante que esqueci de dizer Avelino, a consulta vem de uma conexão ODBC
Fiz um teste com uma consulta com dados local, e está filtrando normal

Re: Filtrar idade em um campo calculado

Enviado: 21 Mar 2018, 13:40
por Avelino Sampaio
Wiractan,

eu não tenho como criar aqui uma conexão ODBC, para testar e tentar entender o que acontece. Vou ter que dar uma pesquisada no assunto.

Acusa algum erro ?

Re: Filtrar idade em um campo calculado

Enviado: 21 Mar 2018, 14:01
por Avelino Sampaio
Por gentileza,

realize o teste de trocar a filtragem, utilizando o campo nomepessoa

Código:
SELECT cons_dados_completo.codigo, cons_dados_completo.bairro, 
cons_dados_completo.nomePessoa, cons_dados_completo.matriculado,
cons_dados_completo.dataNascimento, Idade([DataNascimento]) AS Idade2
FROM cons_dados_completo
WHERE nomePessoa='fulano de tal';


Quero saber se irá filtrar. Supeito que o campo virtual criado, não está sendo processado pelo servidor.

Aguardamos

Re: Filtrar idade em um campo calculado

Enviado: 21 Mar 2018, 14:10
por wcidrin
Filtra normal amigo.
O erro só acontece quando vou filtrar a idade.

Re: Filtrar idade em um campo calculado

Enviado: 21 Mar 2018, 15:19
por Avelino Sampaio
Wiractan,

o objetivo desta consulta é para ser utilizado com um formulário ou com um relatório ?

Aguardamos

Re: Filtrar idade em um campo calculado

Enviado: 21 Mar 2018, 16:15
por wcidrin
Para ser utilizada em um relatório

Re: Filtrar idade em um campo calculado

Enviado: 21 Mar 2018, 18:48
por Avelino Sampaio
Wiractan,

deixa a consulta sem filtragem. Tente realizar a filtragem na chamado do relatório e me diga se irá funcionar. Exemplo:

Código:
docmd.OpenReport "NomeDoRelatório",acViewPreview ,,"idade2 = 40"


Aguardamos

Re: Filtrar idade em um campo calculado

Enviado: 21 Mar 2018, 23:36
por wcidrin
Fiz o que você falou Avelino.
Dá mensagem de erro. A mesma ao tentar filtrar os dados na consulta

Re: Filtrar idade em um campo calculado

Enviado: 22 Mar 2018, 06:11
por Avelino Sampaio
Wiractan,

teste acrescentando os apóstrofes.

Código:
docmd.OpenReport "NomeDoRelatório",acViewPreview ,,"idade2 = '40'"


ou acrescentando a função val().

Código:
docmd.OpenReport "NomeDoRelatório",acViewPreview ,,"val(idade2) = 40"


Aguardamos

Re: Filtrar idade em um campo calculado

Enviado: 22 Mar 2018, 18:55
por wcidrin
Desculpa a demora em responder Avelino.
Tentei as duas opções.
Continua do mesmo jeito, dando o mesmo erro. :roll: