Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

kKatia

Listar pessoas entre 30 e 40 anos de ida

Recommended Posts

Pessoal, estou super anciosa para resolver meu problema que aparentemente é simples, no entanto, não sei por que motivo não esta dando certo, já esgotei o tempo que dei ao meu cliente e já estou com receio de perder meu trabalho. Vou descrever melhor o meu problema e caso vcs possam me ajudar eu ficarei muito feliz.Estou desenvolvendo para uma empresa um site que funcionará numa intranet, a função deste site será manter um cadastro de curriculos, e quando necessário esses serão pesquisados de acordo com alguns critérios de seleção tipo: cargo, sexo, nascimento, estado civil, etc. Baseado nisso criei uma página com um formulario de seleção e uma outra em que esses critérios são analisados e onde será criado uma consulta em sql. primeira tentativa:select *,(year(date())-year(nascimento)) as idade from curriculos where idade BETWEEN 30 and 40apesar desse exemplo não funcioana e dá erro no codigo de conecção com o BD segunda tentativaselect * from curriculos where Year(date())-Year(nascimento) BETWEEN 30 and 40esse exemplo apesar de calcular perfeitamente a idade, lista registros com outras idades fora da seleção Aparentemente as duas seguencias de comandos sql estão corretas, não consigo ver nada errado nelas O banco de dados que estou usando é o access, será esse o problema? Agradeço muito a quem puder me responder com urgencia, estou ficando louca com tanta cobrança. Obrigada, Katia

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente colocar todos os campos utilizados na consulta:

 

select (year(date())-year(nascimento)) as idade, CAMPO1, CAMPO2 from curriculos where idade BETWEEN 30 and 40

ou tente assim

 

select * from curriculos where Year(date())-Year(nascimento) >= 30 and Year(date())-Year(nascimento) <= 40

falows

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ja tentei isso, mas, tambem não deu certo. Todas as formas descritas aqui deveriam funcionar, só que não funciona. O que existe de errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho q descobri o erro, ao invés de ser date(), deverá ser getdate()

 

veja se funfa agora...

 

select * from curriculos where Year(getdate())-Year(nascimento) >= 30 and Year(getdate())-Year(nascimento) <= 40

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz a alteração para getdate e da o seguinte erro de código:Tipo de erro:Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)[Microsoft][Driver ODBC para Microsoft Access] Função 'getdate' indefinida na expressão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você usou a sintaxe correta: getdate().T+

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz o seguinte...coloca o date numa variavel e coloca ele na SQL...data = Year(date())sql = "select * from curriculos where " & data & "-Year(nascimento) >= 30 and " & data & "-Year(nascimento) <= 40"e executa a SQLok? ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.