Ir para conteúdo

POWERED BY:

Arquivado

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

Maicon Alvim

E o problema com busca persiste!

Recommended Posts

Bom pessoal, estou a dois dias tentando fazer uma busca entre datas.

Agora oq acontece é o seguinte:

Ele não reconhece o intervalo de datas e traz todos os resultados do tabela, como se eu tivesse solicitado um relatório.

Estou usando bd em Access, e o campo vencimento (que é onde ficam as datas que ele deve procurar) está no tipo texto....sim, já mudei para data e nada!

Segue formulário e página ASP.

Agradeço qualquer informação que me for passada!

Abraços.

 

Página Formulário: busca.htm

<form name="buscar" id="buscar" method="post" action="dp_busca_ periodo.asp">

<select name="tipo">
<option value="periodo">Por Período</option>
 </select>

<input type="text" name="criterio" value="" onKeyPress="mascara(this, '##/##/####')" size="10"  maxlength="10" />

<input type="text" name="criterio02" value="" onKeyPress="mascara(this, '##/##/####')" size="10"  maxlength="10" />

<input name="submit" type="submit" value="Busca" class="botao">
</form>

 

Página ASP: dp_busca_ periodo.asp

 

<%
vartipo = request.Form("tipo")
varcriterio = Request.Form("criterio")
varcriterio02 = Request.Form("criterio02")
Dim Sql
Set NecroInfo = Server.CreateObject("ADODB.Connection")
NecroInfo.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../banco/info.mdb")

If vartipo = "periodo" Then

Sql = "SELECT * FROM duplicata WHERE vencimento between "&varcriterio&" AND "&varcriterio02&"" 

End If
Set RsInfo = Server.CreateObject("ADODB.Recordset")
RsInfo.Open Sql, NecroInfo, 1, 3
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim:

SELECT * FROM duplicata WHERE vencimento between #"&varcriterio&"# AND #"&varcriterio02&"#

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim:

SELECT * FROM duplicata WHERE vencimento between #"&varcriterio&"# AND #"&varcriterio02&"#

Fala Hargon, primeiramente agradeço a ajuda.

 

Agora oq acontece é extremamente novo pra mim.

 

A primeira vez que fiz a busca com as mudanças que indicou, ok!

 

Agora quando parto para o segunda vez, já não funciona, e ele traz todos os dados da tabela. (Mesmo eu limpando histórico e tudo mais.

 

Tem alguma outra idéia?

 

Agradeço.

 

Maicon Alvim

Compartilhar este post


Link para o post
Compartilhar em outros sites

Da um response.write na SQL, copia ela e joga direto no BD pra ver oq acontece..

 

E posta ela aki pra gente tb..

 

Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Da um response.write na SQL, copia ela e joga direto no BD pra ver oq acontece..

 

E posta ela aki pra gente tb..

 

Att;

 

Opa Drak, agradeço tbm sua ajuda!

 

response.write:

 

SELECT * FROM duplicata_necro WHERE vencimento between #02/04/2010# AND #10/04/2010#

Obrigado

 

Para converter o valor do request.form em Cdate, como faço?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testou essa SQL direto no BD ??

 

Use o cDate(Variavel)

 

Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você possui alguma ferramenta de analise de sql ou o bd aceita comando sql, dá pra saber se o bd vai aceitar o comando que está sendo enviado pelo asp.

Faz muiiito tempo que não uso mais access, então não tenho certeza se ele possui isso.

O Mysql possui essa opção que é o programa Mysql query browser, mas só funciona para o mysql.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você possui alguma ferramenta de analise de sql ou o bd aceita comando sql, dá pra saber se o bd vai aceitar o comando que está sendo enviado pelo asp.

Faz muiiito tempo que não uso mais access, então não tenho certeza se ele possui isso.

O Mysql possui essa opção que é o programa Mysql query browser, mas só funciona para o mysql.

 

Vou fazer um busca na net pra ver se acho algo sobre isso!

 

No mais, você tem outra idéia?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem lembrado Vinicius..

Até onde me lembro no Access a data está no formato mm/dd/aaaa....

 

Coloque suas datas de busca neste formato e teste...

 

Sobre como testar a SQL no banco.. crie uma nova consulta no access.. e va para a forma de SQL..

 

Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem lembrado Vinicius..

Até onde me lembro no Access a data está no formato mm/dd/aaaa....

 

Coloque suas datas de busca neste formato e teste...

 

Sobre como testar a SQL no banco.. crie uma nova consulta no access.. e va para a forma de SQL..

 

Att;

 

Olha só:

 

No bd as datas estão nesse formato 10/10/2010....

 

Quando peço para ele dar um response.write no campo vencimento ele traz exatamente nesse formato!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, percebo o seguinte:

 

Ele não está entendendo o intervalo, pois se faço a busca por uma data específica ele retorna tranquilamente.

 

Tem outra forma de verificar o intervalo das datas?

 

Agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu caro.. você testou com a data 10/10/2010.. ou seja.. tanto dd/mm quanto mm/dd sao iguais...

 

Teste com uma data onde o dia e o mes são diferentes.. Mande ele cadastrar uma data no BD.. e veja se nao foi "invertido",,

 

Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu caro.. você testou com a data 10/10/2010.. ou seja.. tanto dd/mm quanto mm/dd sao iguais...

 

Teste com uma data onde o dia e o mes são diferentes.. Mande ele cadastrar uma data no BD.. e veja se nao foi "invertido",,

 

Att;

 

Cara, fiz a seguinte busca:

 

03/04/2010 a 10/04/2010, e ele inverteu P/ 04/03/2010 a 04/10/2010 dd/mm/aaaa para mm/dd/aaaa).

 

Como proceder?

 

Obrigado pela atenção

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como eu havia dito anteriormente.. você deve colocar a data no formato mm/dd/aaaa para buscar no access...

 

Faça essa alteração do formato e use essa forma alterada na SQL...

 

Utilize o split para fazer essa alteração..

 

Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como eu havia dito anteriormente.. você deve colocar a data no formato mm/dd/aaaa para buscar no access...

 

Faça essa alteração do formato e use essa forma alterada na SQL...

 

Utilize o split para fazer essa alteração...

 

Att;

 

Caro Dark, fiz a utilização do split (em asp), mas não rolou.

 

Eu envio ao bd no formato dd/mm/aaaa, e as datas no bd estão nesse formato. O request.form traz a busca exatamente nesse formato tbm. Só q ele está invertendo na hora de fazer a busca por período, como vimos. Já quando eu faço a busca por uma data específica ele não da problema e me traz todos os registros com essa data.

 

Ainda pode me ajudar?

 

Agradeço.

 

Maicon Alvim

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.