Ir para conteúdo

POWERED BY:

Arquivado

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

cesarhtc

Formulário Pesquisa

Recommended Posts

Com faço uma pesquisa para 1(um) campo no BD (Access), sendo que este campo é data. Como faço para pesquisar periodos.

 

 

 

Agradeço desde já. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

 

 

1[ ]

 

 

 

 

<FORM ACTION="resultadoAssinatura.asp" METHOD=POST >   <font face= "verdana" size="1" color="#000080"> <b>Inicio:</b></font><INPUT TYPE=TEXT style="font-family: verdana; color:blue; font-size=8pt; font:bold;;" NAME="Data de Assinatura"  VALUE=""     SIZE=12 MAXLENGTH=10><font face= "verdana" size="1" color="#000080"> <b>Fim:</b></font><INPUT TYPE=TEXT style="font-family: verdana; color:blue; font-size=8pt; font:bold;;" NAME="Data de Assinatura" VALUE=""     SIZE=12 MAXLENGTH=10 > <INPUT TYPE=SUBMIT VALUE="Achar" style="color:#330099; background-color:bordeo"></FORM>

PÁGINA DE RESULTADO

 

'Recupera do pesqBDAF.asp o valor das variáveis passadaswInicio = Request.form("Data de Assinatura")   wFim = Request.form("Data de Assinatura")'Monta a string SQL de checagem da existencia da CP'strSQL= "SELECT * FROM AFs WHERE AFs.[Data de Assinatura] >= "& winicio &"  ORDER BY AFs.[Data de Assinatura]DESC" strSQL= "SELECT DISTINCTROW AFs.*, AFs.[Data de Assinatura] AS Inicio, AFs.[Data de Assinatura] AS Fim FROM AFs WHERE AFs.[Data de Assinatura]>="& winicio &" AND AFs.[Data de Assinatura]<=" & wfim &" "Response.Write strSQL & "<BR>" 'response.end'Cria um objeto recordsetset rstMain = Server.CreateObject("ADODB.Recordset")'Conecta ao BD pelo DSN e abre a consulta'Como resultado, o recordset conterá a tabela-respostarstMain.Open strSQL,conexaoif not rstMain.EOF then %><table border=0 align=center><tr bgcolor="#C0C0C0">   <td align=center><font face="tahoma" size="1" color="#000080"><b>AF</b></td>   <td align=center><font face="tahoma" size="1" color="#000080"><b>Fornecedor</b></td>   <td align=center><font face="tahoma" size="1" color="#000080"><b>Assinatura</b></td>   <td align=center><font face="tahoma"  size="1" color="#000080"><b>Valor</b></td></tr><%' Percorrer o recordset até o finalDo until rstMain.EOF%><tr><td align=center><font face="verdana" color="blue" size= "1"><b><a href="ver2.asp?Número da AF=<%=rstMain("Número da AF")%>">   <%numero = rstMain("número da af")if len(numero)=9 then numero="0" & numero	'põe um zero "à força" à esquerda do nº da AF se tiver 9 dígitos' Se não tiver 9 dígitos, é porque tem 10 e não precisa colocar o zero à esquerdaparte1=left(numero,2)   'põe na parte1 os 2 dígitos mais à esquerda. parte2=mid(numero,3,4)  'põe na parte2 os 4 dígitos que começam na posição 3, a contar da esquerda.parte3=right(numero,4)  'põe na parte3 os 4 dígitos mais à direita.numeroformatado=parte1 & "." & parte2 & "." & parte3response.write numeroformatado%>     </a></b></td>      <td align=justify><font face="arial" color="blue" size= "1" <b><%=rstMain("Nome Fornecedor")%></b></td>   <td align=center><font face="tahoma" color="blue" size= "1" <b><%=rstMain("Data de Assinatura")%></b></td>   <td align=right><font face="tahoma" color="blue" size= "1" <b><%=formatnumber(rstMain(("total da AF")),2)%></b></td></tr> <%' Move para o próximo registro	 rstMain.movenext   Loop%>  </table><% rstMain.Closeelse%>		<hr>		<h3 style=color="red">Nenhuma AF encontrada no banco.</h3> <hr><%End if'Libera a memória (destrói o objeto recordset)Set rstMain=Nothing%><BR><table bgcolor="#EFEFEF" cellpadding=2 width="100%"> <tr>   <td width=100%>	   <p align=center><a align=center href="pesqBDAF.asp"><font face="Verdana" size="3">Nova consulta</font></a></p>   </td>   </tr></table><p>

Compartilhar este post


Link para o post
Compartilhar em outros sites

o formato da data na consulta deve ser mm/dd/aaaa

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá.. estou com esta mesma duvida.. e pra usar um form com dois campos.. tipo um periodo.. digamos de 01/01/2006 a 01/02/2006... como completo esta consulta...

SELECT data FROM Tabela WHERE GETDATE() LIKE ('" & Request("data") & "')

posso fazer :

"SELECT data FROM Tabela WHERE GETDATE() LIKE ('" & Request("data1") & "') AND ('" & Request("data2") & "') ORDER BY DESC"

fico no aguardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

use assim"SELECT data FROM Tabela WHERE CAMPODATA BETWEEN #" & Request("data1") & "# AND #" & Request("data2") & "# ORDER BY CAMPODATA DESC"mas lembre que a data tem de estar no formato mm/dd/aaaa se for access o DB

Compartilhar este post


Link para o post
Compartilhar em outros sites

por que o # no codigo sql ? mas nessa consulta... digamos... tenho cadastrado registros de 01/01/2005 a 01/06/2005... e no form coloque 01/12/2004 a 01/07/2005 ele funciona corretamente... ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim tem que funcionar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou com o seguinte erro

Tipo de erro:Microsoft JET Database Engine (0x80040E07)Erro de sintaxe na data na expressão de consulta 'date_now BETWEEN ## AND ##'./edson/result_rel.asp, line 20

a linha 20 é a seguinte:
SELECT * FROM customer WHERE date_now BETWEEN #" & Request("Data1") & "# AND #" & Request("Data2") & "# ORDER BY date_now DESC
nao tenho muita experiencia em consultas... poderia me ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

aparentemente as datas tao vaziasentãoisso ta trazendo valores:Request("Data1") e Request("Data2")

Compartilhar este post


Link para o post
Compartilhar em outros sites

o formato da data tem de ser mm/dd/aaaateste assim com valores fixos para testarSELECT * FROM customer WHERE date_now BETWEEN #04/01/2005# AND #06/30/2005# ORDER BY date_now DESCou seja todas as datas entre 01/04/2005 e 30/06/2005

Compartilhar este post


Link para o post
Compartilhar em outros sites

Construi o seguinte codigo pra testar:

 

<html><head></head><body><%Set Conn = CreateObject("ADODB.CONNECTION")Sqlstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="Sqlstring = Sqlstring & Server.MapPath("database/work.mdb")Conn.Open SqlstringstrSQL = "SELECT * FROM customer WHERE date_now BETWEEN #8/12/2005# AND #8/12/2005# ORDER BY date_now DESC"Set Rs = Server.CreateObject("ADODB.Recordset")Rs.Open strSQL,Conn,1,1do While not Rs.EOFResponse.Write Rs.Fields("date_now") & "<br>"Rs.MoveNextLoop%></body></html>

mas nao esta me retornando nada... sendo que no banco esta sendo cadastrado as datas no formato brasileiro... digamos 8/12/2005 (dd/mm/aaaa) ... o que pode estar faltando...?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o certo é pesquisar no formato americano mm/dd/aaaa

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.