Ir para conteúdo

POWERED BY:

Arquivado

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

mellosp

Busca com between

Recommended Posts

Pessoal faz tempo que to tentando fazer uma busca em um bd e nao consigo.

Tenho um bd access com um campo formatado como numero.

eu quero fazer uma busca com valor minimo e maximo

entao eu fiz um form assim

de 100 a 500

de 500 a 1.000

de 1.000 a 5.000

acima de 5.000

 

e na pagina de busca

valor = Request.form("valores")
If valor = "de 100 a 500" Then
valomin = 100
valormax = 500
SqlBusca ="Select * from produtos Where valor Between '"&valormin&"' AND '"&valormax&"' Order By valor"
End if

If valor = "de 500 a 1.000" Then
valomin = 500
valormax = 1000
SqlBusca ="Select * from produtos Where valor Between '"&valormin&"' AND '"&valormax&"' Order By valor"
End if

E assim por diante

 

Onde estou errando?

 

Obrigado a todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se o campo é do tipo Numerico, remova a aspas simples (') da variavel

 

SqlBusca ="Select * from produtos Where valor Between "&valormin&" AND "&valormax&" Order By valor"

 

Abraços.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma dica, verifique se com o Between estão retornando todos os dados que são esperados, em alguns casos ele só retorna o intervalo, ou seja, o que está entre o primeiro e o último e não inlcui os mesmos, se acontecer faça sua query assim:

SqlBusca ="Select * from produtos Where valor >= "&valormin&" AND valor <= "&valormax&" Order By valor"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só que agora estou com um problema e queria uma dica de voces.

meu bd do access esta com a coluna formatada como numero.

se eu insiro 1.000 ele me retorna 1.000,00 ou seja coloca virgula e dois zeros.

Seu eu coloco 779.24 ele me retorna 77.924,00

como resolvo isso?

 

---------------------------

Uma dica, verifique se com o Between estão retornando todos os dados que são esperados, em alguns casos ele só retorna o intervalo, ou seja, o que está entre o primeiro e o último e não inlcui os mesmos, se acontecer faça sua query assim:

SqlBusca ="Select * from produtos Where valor >= "&valormin&" AND valor <= "&valormax&" Order By valor"

Compartilhar este post


Link para o post
Compartilhar em outros sites

valor = Request.form("valores")

If valor = "de 100 a 500" Then

valomin = 100

valormax = 500

SqlBusca ="Select * from produtos Where valor Between '"&valormin&"' AND '"&valormax&"' Order By valor"

End if

 

If valor = "de 500 a 1.000" Then

valomin = 500

valormax = 1000

SqlBusca ="Select * from produtos Where valor Between '"&valormin&"' AND '"&valormax&"' Order By valor"

End if

Deixa eu fazer uma pergunta muito retardada de quem tá iniciando no ASP... Ele não poderia fazer um ElseIf ao invés de abrir um outro IF?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O campo tem que estar como numero, texto ate funciona, so que se eu usar o formato texto no bd nao tem como fazer buscar por valor , ja que ele vai estar buscando um numero.

 

 

Não entendi, você não poderia retirar a formatação?

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.