Ir para conteúdo

POWERED BY:

Arquivado

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

Eletrohoo

Busca do tipo Data Inicio ate Data Fim

Recommended Posts

Amigos, retorno ao fórum solicitando se algum amigo pode me ajudar a "modificar" o codigo abaixo de forma que ele faça a busca vinda de um formulario com os campos Data Inicial e Data Final,

 

No meu codigo eu usei o comando "OR" para fazer a varredura do periodo entre as datas, mas nao funcionou...

 

Li aqui no forum que é um comando especifico pra isso.

 

Segue o codigo:

 

<%@LANGUAGE="VBSCRIPT"%>
<%Category = request.Querystring%>

<%
response.buffer = "true"
Set Conexao = Server.CreateObject("ADODB.Connection")
dbPath = "DBQ=" & Server.Mappath("../../../dados/sistema.mdb")
Conexao.Open "DRIVER={Microsoft Access Driver (*.mdb)};" & dbPath
Set Recordset1 = Server.CreateObject("ADODB.RecordSet")
Recordset1.Open "SELECT * FROM fluxo_caixa WHERE data_venda LIKE '%"& request.form("date_inicio") &"%' OR data_venda LIKE '%"& request.form("data_fim") &"%' and status='fechado' order by id_fluxo_caixa" , Conexao, 1, 3
%>

<%
Dim Repeat1__numRows
Repeat1__numRows = -1
Dim Repeat1__index
Repeat1__index = 0
Recordset1_numRows = Recordset1_numRows + Repeat1__numRows
if Recordset1.eof then
response.write "<b>Nenhuma venda nesse periodo</b>"
else
%>

<% 
While ((Repeat1__numRows <> 0) AND (NOT Recordset1.EOF)) 
%>


<%=Recordset1("Produto")%><br>


<% 
Repeat1__index=Repeat1__index+1
Repeat1__numRows=Repeat1__numRows-1
Recordset1.MoveNext()
Wend
%>
<%
Recordset1.Close()
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem que usar o between WHERE coluna_data BETWEEN '01/01/2009' AND '30/01/2009'

 

Olá Janathandj, fiz como você me indicou da seguinte forma:

 

Recordset1.Open "SELECT * FROM fluxo_caixa WHERE data_venda BETWEEN "& request.form("date_inicio") &" AND "& request.form("data_fim") &" and status='fechado' order by id_fluxo_caixa"

Mas ha o seguinte erro:

 

ADODB.Recordset error '800a0e7d' 
The connection cannot be used to perform this operation. It is either closed or invalid in this context. 
/sistema/loja1/2.asp, line 13 

No caso a linha 13 é essa que colocamos o Between

 

As datas no banco de dados esta no formato: 22/11/2009 16:17:00

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá um response.write na sua string SQL para ver o k esta sendo passado e verifique se os campos estao com os tipos corretos no bd, e acausa mais provável é que você está tentando definir ActiveConnection do objeto de comando para um objeto de conexão inválido, ou você não defini a propriedade ActiveConnection. Verifique o seu código, e certifique-se de seu objeto de conexão é válida e aberta, antes de tentar defini-la como a conexão ativa para o objeto de comando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá um response.write na sua string SQL para ver o k esta sendo passado e verifique se os campos estao com os tipos corretos no bd, e acausa mais provável é que você está tentando definir ActiveConnection do objeto de comando para um objeto de conexão inválido, ou você não defini a propriedade ActiveConnection. Verifique o seu código, e certifique-se de seu objeto de conexão é válida e aberta, antes de tentar defini-la como a conexão ativa para o objeto de comando.

 

Xanburzum, obrigado pela ajuda, mas sou iniciante em ASP, e não entendi suas dicas. Pode me ajudar com algum exemplo?

 

O formato no campo da tabela do bd access esta Data/Hora.

Compartilhar este post


Link para o post
Compartilhar em outros sites

faltou apostrofe

Recordset1.Open "SELECT * FROM fluxo_caixa WHERE data_venda BETWEEN '"& request.form("date_inicio") &"' AND '"& request.form("data_fim") &"' and status='fechado' order by id_fluxo_caixa"

se não me engano no access tem que inverter o mes pelo dia

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha este exemplo

<%
session.LCID = 1046
datai = Request.Form("datai")
dataf = Request.Form("dataf")
pago  = Request.Form("pago")
relc  = Request.Form("relc")



datai = CDate(datai)
dataf = CDate(dataf)



if (IsDate(datai) = true) and (IsDate(dataf) = true) then
 datai = datai
 dataf = dataf
else
 datai = ""
 dataf = ""
end if



if (datai = "") or (dataf = "") then
 Response.Write = "Data inicial ou final não são validas"
 Response.End
Else



datai = Month(datai) & "/" & Day(datai) & "/" & Year(datai)
dataf = Month(dataf) & "/" & Day(dataf) & "/" & Year(dataf)



Set cnn = Server.CreateObject("ADODB.Connection")
cnn.Open Conectar



Set rs = Server.CreateObject("ADODB.RecordSet")
 lin = "Select pedidofabrica.id_pedidofabrica, clientes.nome, pedidofabrica.pedido, pedidofabrica.pedido, pedidofabrica.valor, pedidofabrica.comissao "
 lin = lin & "From pedidofabrica, clientes Where pedidofabrica.user_id = clientes.user_id and "
 lin = lin & "pedidofabrica.data between #"& datai &"# and #" & dataf & "# and pedidofabrica.pago=" & pago & " and pedidofabrica.relatoriocomissao=" & relc
 rs.Open lin ,cnn,1,1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigos, como comentei estou postando o exemplo do codigo que montei, e podera (quando ficar pronto) servir de base para outros amigos, por isso peço que me ajudem a conclui-lo.

 

O sistema faz uma busca de vendas de loja, com filtro de Data de venda inicial ate Data de venda final.

 

O codigo na verdade são varios filtros, mas o problema esta nos campos "Data_inicio" e "Data_fim".

 

Enquanto so havia um mes no sistema (o mes 11 - novembro), o sistema funcionava, mas quando entrou o mes 12 (dezembro) ai tudo ficou misturado.

 

Peço que acessem o link que eu montei o sistema, para que possam verificar o funcionamento e assim darem sugestões, nesse link postei um arquivo zip que pode ser baixado para que visualizem o codigo e banco de dados.

 

http://www.eletrohoo.com.br/sistema/1.asp

 

Abaixo segue o codigo ASP da pagina principal:

 

 

<%@LANGUAGE="VBSCRIPT"%> 
<%Category = request.Querystring%> 
 
<% 
response.buffer = "true" 
Set Conexao = Server.CreateObject("ADODB.Connection") 
dbPath = "DBQ=" & Server.Mappath("sistema.mdb") 
Conexao.Open "DRIVER={Microsoft Access Driver (*.mdb)};" & dbPath 
Set Recordset1 = Server.CreateObject("ADODB.RecordSet") 
'Recordset1.Open "SELECT * FROM fluxo_caixa WHERE data_venda BETWEEN #"& request.form("data_inicio") &"# AND #" & request.form("data_fim") &"# and status='fechado' and loja='loja1' and  funcionario_venda LIKE '%"& request.form("funcionario_venda") &"%'  and  categoria LIKE '%"& request.form("categoria") &"%'   order by produto" , Conexao, 1, 3

Recordset1.Open "SELECT * FROM fluxo_caixa WHERE data_venda BETWEEN #"& request.form("data_inicio") &"# AND #" & request.form("data_fim") &"# and status='fechado' and  funcionario_venda LIKE '%"& request.form("funcionario_venda") &"%'  and  categoria LIKE '%"& request.form("categoria") &"%'  and  loja LIKE '%"& request.form("loja") &"%'  order by produto" , Conexao, 1, 3


%> 
 
<% 
Dim Repeat1__numRows 
Repeat1__numRows = -1 
Dim Repeat1__index 
Repeat1__index = 0 
Recordset1_numRows = Recordset1_numRows + Repeat1__numRows 
if Recordset1.eof then 
response.write "<b><font size=2 face=verdana><center>Nenhuma venda nesse periodo</font></center></b><br><br>" 
else 
%> 
 
<table width="100%" border="0" cellspacing="3" cellpadding="2" align="center">
<tr bgcolor=#404040>
<td align=left width=10%><font size=1 color=ffffff face=verdana><b>N. venda</td>
<td align=left><font size=1 color=ffffff face=verdana><b>Cod.:</td>
<td align=left width=50%><font size=1 color=ffffff face=verdana><b>Produto</td>
<td align=left width=5%><font size=1 color=ffffff face=verdana><b>Qtd.</td>
<td align=left width=10%><font size=1 color=ffffff face=verdana><b>R$ Un.</td>
<td align=left width=10%><font size=1 color=ffffff face=verdana><b>R$ Total</td>
<td align=left width=15%><font size=1 color=ffffff face=verdana><b>Vendedor</td>
<td align=left width=10%><font size=1 color=ffffff face=verdana><b>Data</td>
</tr>

<%  
While ((Repeat1__numRows <> 0) AND (NOT Recordset1.EOF))  
%> 
<tr> 
<td bgcolor=#E1E1E1 align=left><font size=1 color=000000 face=verdana> <%=Recordset1("id_fluxo_caixa")%></td>
<td bgcolor=#E1E1E1 align=left><font size=1 color=000000 face=verdana> <%=Recordset1("id_produto")%></td>
<td bgcolor=#E1E1E1 align=left><font size=1 color=000000 face=verdana> <%=Recordset1("Produto")%></td>
<td bgcolor=#E1E1E1 align=left><font size=1 color=000000 face=verdana> <%=Recordset1("quantidade")%></td>
<td bgcolor=#E1E1E1 align=left><font size=1 color=000000 face=verdana> <%=Recordset1("valor_venda")%>,00</td>
<td bgcolor=#E1E1E1 align=left><font size=1 color=000000 face=verdana> <%=Recordset1("quantidade")* Recordset1("valor_venda")%>,00 </td>
<td bgcolor=#E1E1E1 align=left><font size=1 color=000000 face=verdana> <%=Recordset1("funcionario_venda")%></td>
<td bgcolor=#E1E1E1 align=left><font size=1 color=000000 face=verdana> <%=Recordset1("data_venda")%></td>
<%Total = Total + (Recordset1("quantidade")* Recordset1("valor_venda"))%>
</tr> 
 
<%  
Repeat1__index=Repeat1__index+1 
Repeat1__numRows=Repeat1__numRows-1 
Recordset1.MoveNext() 
Wend 
%> 
<tr><td colspan=5></td><td align=right bgcolor=#E1E1E1><font size=2 color=000000 face=verdana><b>TOTAL </td><td bgcolor=#E1E1E1><font size=3 color=red face=verdana><b>
<%Response.Write Total
end if %>
,00</td><td colspan=2></td></tr>
</tr><TR><td colspan=8></td><TD BGCOLOR=000000 COLSPAN=2></TD><td colspan=2></td></TR>
</table>

<% 
Recordset1.Close() 
%>

<%
'end if
 %>

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.