Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Criar intervalo no select usando variavel


Roberto Bellucco

Pergunta

Boa amigos!!!!

É a 1.vez que posto aqui minha duvida, espero que consiga solucionar meu problema, e espero ajudar quem eu puder, é o seguinte, tento fazer um filtro em um formulário usando variaveis no SELECT e não estou conseguindo! uso o BETWEEN mas ai tenho que digitar o valor do campo, com variavel ele trava, olha o que eu estou tentando fazer e não tadando certo:

Set objConn = Server.CreateObject("ADODB.Connection")

objConn.Open "DBQ=" & Server.MapPath("../sip.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}","username","password"

de = Request.Form("txtde")

ate = Request.Form("txtate")

'Ajustando listagem

strSQL = "SELECT * FROM clientes WHERE extensaoproj >= '"&de&"' AND <= '"&ate&"' "

Set rsClientes = objConn.Execute(strSQL)

é isso se alguém puder me ajudar!!!

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

como você esta usando o banco em access .mdb tente colocar a # entre as strings

SELECT * FROM clientes WHERE extensaoproj BETWEEN '#" & de & "#' and '#" & ate & "#' "

espero ter ajudado.

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, como bem observado pelo Alex, as consultas de datas em BD Access devem ter suas variaveis abraçadas por #, se e somente se o campo estiver dentro do formato data.

Então assim:

1) verificar se o formato do campo está no formato data;

2) corrigir a sintaxe, ou seja: #"&de&"# seria a forma correta;

3) lembrar que como você não está usando betwwen na sua query você deve repetir a variavel a ser comparada na condicional, ficando algo do tipo: extensaoproj >= #"&de&"# AND extensaoproj <= #"&ate&"# ;

4) poste aqui a mensagem de erro completa para termos certeza do que está acontecendo...

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

  • 0
Bom, como bem observado pelo Alex, as consultas de datas em BD Access devem ter suas variaveis abraçadas por #, se e somente se o campo estiver dentro do formato data.

Então assim:

1) verificar se o formato do campo está no formato data;

2) corrigir a sintaxe, ou seja: #"&de&"# seria a forma correta;

3) lembrar que como você não está usando betwwen na sua query você deve repetir a variavel a ser comparada na condicional, ficando algo do tipo: extensaoproj >= #"&de&"# AND extensaoproj <= #"&ate&"# ;

4) poste aqui a mensagem de erro completa para termos certeza do que está acontecendo...

[]'s Rafael Spilki

RAfael, Obrigado pela sua resposta inicial!!!!mas o campo que estou tentando filtrar e numérico e acredito que o # serve para datas, meu BETWEEN funciona se eu colocar BETWEEN 10 AND 30 por exemplo, mas colocando variaveis não funciona, e eu já tentei sem o BETWEEN tambem como você mostrou acima e não deu certo, no meu banco de dados esse campo tem seu valor numerico e o conteudo dos registros variam de 1 a 500 quero apenas listar uma faixa de valores!

Será que dá, como eu disse já tentei da forma do 3.tópico acima e não deu!

Valeu por enquanto.

Link para o comentário
Compartilhar em outros sites

  • 0
Bom, como bem observado pelo Alex, as consultas de datas em BD Access devem ter suas variaveis abraçadas por #, se e somente se o campo estiver dentro do formato data.

Então assim:

1) verificar se o formato do campo está no formato data;

2) corrigir a sintaxe, ou seja: #"&de&"# seria a forma correta;

3) lembrar que como você não está usando betwwen na sua query você deve repetir a variavel a ser comparada na condicional, ficando algo do tipo: extensaoproj >= #"&de&"# AND extensaoproj <= #"&ate&"# ;

4) poste aqui a mensagem de erro completa para termos certeza do que está acontecendo...

[]'s Rafael Spilki

RAfael, Obrigado pela sua resposta inicial!!!!mas o campo que estou tentando filtrar e numérico e acredito que o # serve para datas, meu BETWEEN funciona se eu colocar BETWEEN 10 AND 30 por exemplo, mas colocando variaveis não funciona, e eu já tentei sem o BETWEEN tambem como você mostrou acima e não deu certo, no meu banco de dados esse campo tem seu valor numerico e o conteudo dos registros variam de 1 a 500 quero apenas listar uma faixa de valores!

Será que dá, como eu disse já tentei da forma do 3.tópico acima e não deu!

Valeu por enquanto.

Rafael, obrigado....acabei de responder o forum...raciocinei um pouco mais e consegui!!!! fica assim!!!!

extensaoproj BETWEEN "&de&" AND "&ate&" "

É fogo, quando a cabeça não pensa o corpo padece!!!!!!

Obrigado mesmo assim

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...