Ir para conteúdo

POWERED BY:

Arquivado

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

valdir calixto

Buscas dentro de um período

Recommended Posts

Estou fazendo uma consulta no qual tem um campo para digitar o nome do cobrador, um outra campo que pede a situação do cliente (QUITADO, MANTIDO, PROCON, JURIDICO) e um terceiro campo para fazer uma busca entre duas datas digitadas:

 

Exemplo: Cobrador : Joâozinho

Situação: Quitado

Data: 10/07/2007 até 15/07/2007

 

Ou seja vai me trazer na tela todos os clientes do cobrador joãozinho que estão quitados entre 10/07/2007 até 15/07/2007,

 

Existe uma situação que é o seguinte essas datas estão dentro de vários campos pois cada cliente tem sua compra parcelado em 12x. As formas de pagamento estão assim no banco de dados:

 

Emissão1

Vencimento1

Pagoem1

 

Emissão2

Vencimento2

Pagoem2

 

Emissão3

Vencimento3

Pagoem3

 

Assim por diante, então quando mandar fazer a busca de 10/07/2007 até 15/07/2007 tem que ser procurando essas informações iniciais e finais a partir do campo pagoem1.....pagoem2.....pagoem3...e assim por diante.

Abaixo está o código inicial.

 

<% Option Explicit %><head><title></title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body bgcolor="#F8BF6B" link="#000000" vlink="#000000" alink="#000000"><form action="consultaporcobrador.asp" method="post" name="form" target="centro"><table width="387" border="0" align="center" cellpadding="0" cellspacing="0"><tr> <td width="148"><font color="#000099"><strong>Digite o Cobrador</strong></font></td><td width="239"><input type="text" name="nome" size="25"></td></tr><tr> <td><font color="#000099"><strong>Digite a Situação</strong></font></td><td><input type="text" name="nome2" size="25"></td></tr><tr> <td height="24"> <div align="left"><font color="#000099"><strong>Digite a Data</strong></font></div></td><td><font color="#000099"><strong>DE</strong></font> <input name="nome3" type="text" id="nome3" size="8"><font color="#000099"><strong>ATÉ</strong></font> <input name="nome4" type="text" id="nome4" size="8"></td></tr><tr> <td colspan="2"><div align="center"> <input type="submit" name="btBuscar" value="Buscar"></div></td></tr></table></form><hr size="1"><table width="720" border="1" cellpadding="0" cellspacing="0" bordercolor="#333333"><tr><td width="50"><%Dim strSQL, oConn, rs, varBusca, varBusca2, varBusca3, Varbusca4varBusca = Request.Form("nome")-------CAMPO PARA DIGITAR O NOME DO COBRADORvarBusca2 = Request.Form("nome2") ------ CAMPO PARA DIGITAR A SITUAÇÃO (MANTIDO, QUITADO....ETC)varBusca3 = Request.Form("nome3") ----- CAMPO PARA DIGITAR A DATA INICIALvarBusca4 = Request.Form("nome4") ------ CAMPO PARA DIGITAR A DATA FINALIf varBusca <> "" Then'monta a sql[b]strSQL = "SELECT * FROM search WHERE Cobrador LIKE '%" & varBusca & "%' AND Situacao LIKE '%" & varBusca2 & "%' OR Pagoem1 In ('%" & varBusca3 & "%') ORDER BY Ncto"[/b] -------BEM A PARTIR DAQUIE Q EU PRECISARIA FAZER AS BUSCAS NOS CAMPOS PAGOEM.....'abre a oConnCall abre_oConn'executa a instrução SQLSet rs = oConn.Execute(strSQL)If rs.EOF And rs.BOF ThenResponse.Write "<script>alert('Nenhum cliente encontrado.');</script>"Response.EndElseResponse.Write ("<b>CTO</b></td><td width=70><b>Atribuição</b></td><td width=70><b>Valor</b></td><td width=100><b>Vencimento</b></td><td width=50><b>Observação<b></td><br><br>")While Not rs.EOF%></tr><tr><td><% Response.Write ("<a href='alterar2novo.asp?id_cliente="& rs("ID") & "'"">" & rs("Ncto") & "</a></td><td width=70> " & rs("Atribuicao") & "</td><td width=70>" & rs("Valor") & "</td><td>" & rs("Vencimento") & "</td><td align=center width=50> " & rs("Observacao") & "</td>")rs.MoveNextWendEnd Ifrs.CloseCall fecha_oConnSet rs = NothingEnd If%></tr></table><p><input type="button" name="Submit" value="Imprimir" Onclick="window.print('taglibs.txt')"></p></body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente usar o Between

 

veja um exemplo e você pode encorporar!

 

SELECT * FROM clientes WHERE contrato BETWEEN '2007-01-01' AND '2007-12-31'

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Between server para fazer comparação entre datas, de um período à outro, pelo que entendi é isso que você precisa, por esse motívio coloquei um exemplo de Between

 

 

strSQL = "SELECT * FROM search WHERE Cobrador LIKE '%" & varBusca & "%' AND Situacao LIKE '%" & varBusca2 & "%' OR Pagoem1 In ('%" & varBusca3 & "%') And Between '"&Data01&"' And '"&Data02&"' ORDER BY Ncto"

mais ou menos isso!

 

qualquer coisa sobre o assunto tem aki no link

 

http://www.htmlstaff.org/ver.php?id=9307

Compartilhar este post


Link para o post
Compartilhar em outros sites

A questão é que esse intervalo vai ser digitado por um usuário.O campo Pagoem1, Pagoem2....são campos da minha tabela, aonde estão as datas de pagamento de cada cliente, ou seja quando o usuário digitar uma data tem quer ser feito uma pesquisa dentro desses campos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

exatamente isso que fiz pra você:

 

Vamos lá que te explico melhor:

 

valor1 = Request.Form("CampoDataDe")
valor2 = Request.Form("CampoDataAte")

strSQL = "SELECT * FROM search WHERE Cobrador LIKE '%" & varBusca & "%' AND Situacao LIKE '%" & varBusca2 & "%' OR Pagoem1 In ('%" & varBusca3 & "%') And Pagoem1 Between '"&valor1&"' And '"&valor2&"' ORDER BY Ncto"

Esse Between faz a função de comparação entre datas, de "tanto" a "tanto"

 

como você disse vai ser digitado pelo usuário "Request.Form("CampoDataDe")" até "Request.Form("CampoDataAte")"

 

Repare onde coloquei o exemplo do Pagoem1

 

Fiz do jeito que você falou

 

Assim por diante, então quando mandar fazer a busca de 10/07/2007 até 15/07/2007 tem que ser procurando essas informações iniciais e finais a partir do campo pagoem1.....pagoem2.....pagoem3...e assim por diante.

Compartilhar este post


Link para o post
Compartilhar em outros sites

strSQL = "SELECT * FROM search WHERE Cobrador LIKE '%" & varBusca & "%' AND Observacao LIKE '%" & varBusca2 & "%' OR Pagoem1 In ('%" & varBusca3 & "%') And Pagoem1 Between '"&Varbusca3&"' And '"&Varbusca4"' ORDER BY Ncto"

 

Está dando esse erro, analisando o que foi colocado, ele não tá fazendo a buscas nos campoS do financeiro: Pagoem1, Pagoem2, Pagoem3.

 

Esse campos correspondem a datas de pagamento:

1º PARCELA PAGOEM1 XXXX/XX/XXXX

2º PARCELA PAGOEM2 XXXX/XX/XXXX.

Compartilhar este post


Link para o post
Compartilhar em outros sites

strSQL = "SELECT * FROM search WHERE Cobrador LIKE '%" & varBusca & "%' AND Observacao LIKE '%" & varBusca2 & "%' OR Pagoem1 In ('%" & varBusca3 & "%') And Pagoem2 Between ('%" & varBusca3 & "%') AND Pagoem3 IN('%" & varBusca3 & "%') ORDER BY Ncto"Tentei dessa forma, só que não faz a filtragem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

veja como poderá ser:

 

strSQL = "SELECT * FROM search WHERE Cobrador LIKE '%" & varBusca & "%' AND Observacao LIKE '%" & varBusca2 & "%'  And Pagoem1 Between '"&varBusca3&"' And '"&varBusca4"' And Pagoem2 Between '"&varBusca3&"' And '"&varBusca4"' And Pagoem3 Between '"&varBusca3&"' And '"&varBusca4"'  ORDER BY Ncto"

veja se os campos são esses mesmo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Erro de compilação do Microsoft VBScript (0x800A0401)Fim da instrução esperado/ccnovo/admin/consultaporcobrador.asp, line 51, column 168strSQL = "SELECT * FROM search WHERE Cobrador LIKE '%" & varBusca & "%' AND Observacao LIKE '%" & varBusca2 & "%' And Pagoem1 Between '"&varBusca3&"' And '"&varBusca4"' And Pagoem2 Between '"&varBusca3&"' And '"&varBusca4"' And Pagoem3 Between '"&varBusca3&"' And '"&varBusca4"' And Pagoem4 Between '"&varBusca3&"' And '"&varBusca4"' ORDER BY Ncto"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ficou desta forma:strSQL = "SELECT * FROM search WHERE Cobrador LIKE '%" & varBusca & "%' AND Observacao LIKE '%" & varBusca2 & "%' And Pagoem1 Between '"& varBusca3 &"' And '"& varBusca4 &"' And Pagoem2 Between '"& varBusca3 &"' And '"& varBusca4 &"' And Pagoem3 Between '"& varBusca3 &"' And '"& varBusca4 &"' And Pagoem4 Between '"& varBusca3 &"' And '"& varBusca4 &"' ORDER BY Ncto"Só que agora não filtra mais nada, não acha mais nenhum registro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque entre parênteses, ficando assim

 

strSQL = "SELECT * FROM search WHERE Cobrador LIKE '%" & varBusca & "%' AND Observacao LIKE '%" & varBusca2 & "%' And (Pagoem1 Between '"& varBusca3 &"' And '"& varBusca4 &"') And (Pagoem2 Between '"& varBusca3 &"' And '"& varBusca4 &"') And (Pagoem3 Between '"& varBusca3 &"' And '"& varBusca4 &"') And (Pagoem4 Between '"& varBusca3 &"' And '"& varBusca4 &"') ORDER BY Ncto"

Se tiver usando o ACCESS coloque o # nas datas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Configurei com máscara tanto no Access como no código, só que continua dando o mesmo erro, dando mensagem que não localizou nenhum cliente.And (Pagoem1 Between '"& varBusca3 &"' And '"& varBusca4 &"') And (Pagoem2 Between '"& varBusca3 &"' And '"& varBusca4 &"') And (Pagoem3 Between '"& varBusca3 &"' And '"& varBusca4 &"') And (Pagoem4 Between '"& varBusca3 &"' And '"& varBusca4 &"')Está dando o seguinte erro.Tipo de navegador: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322) Página: POST 76 bytes to /ccnovo/admin/consultaporcobrador.aspPOST Data:nome=valdir&nome2=&nome3=15%2F07%2F2007&nome4=20%2F07%2F2007&btBuscar=Buscar

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.