Ir para conteúdo

POWERED BY:

Arquivado

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

Diego Gonçalves

[Resolvido] Consulta entre datas

Recommended Posts

Fala pessoal...

 

Estou com um problema aqui, que não tenho ideia de como resolver, pois acredito que estou realizando a consulta da maneira correta, mas ta dando zica.:

 

BD ACCESS

 

SQL = "Select * From Tabela_X where DATA BETWEEN #"&DATAI&"# and  #"&DATAFIM&"# AND Nome = '"&Nome&"' Order By Data Asc"
set rs = conexao.execute(SQL)

Quando consulto exemplo: 01/11/2010 até 30/11/2010: OK.

Quando consulto exemplo: 04/11/2010 até 30/11/2010: Me retorna registros do dia 1/11/2010 << ERRADO

Quando consulto exemplo: 01/11/2010 até 08/11/2010: Não retorna nada

Compartilhar este post


Link para o post
Compartilhar em outros sites

o padrao é MM/DD/AAAA para access

 

faça o teste

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema eu considero esse AND Nome = '"&Nome&"' faça o teste da seguinte maneira sem utilizar ele e poste o resultado.

 

SQL = "Select * From Tabela_X where (DATA BETWEEN #"&DATAI&"# and #"&DATAFIM&"#) Order By Data Asc"
set rs = conexao.execute(SQL)

Compartilhar este post


Link para o post
Compartilhar em outros sites

formate antes de exibir os dados

 

function formatadata(data)
dia=day(data)
mes =month(data)
ano=year(data)
formatadata=dia&"/"&mes&"/"&ano
end function

Compartilhar este post


Link para o post
Compartilhar em outros sites

Srs. Obrigado pela atenção.

 

Tentei tanto utilizando a função quanto buscando apenas por data, porém, o erro persiste. Utilizando a função, a variável fica com valor nulo, invalidando a instrução SQL. Caso tenham outra forma, agradeço.

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 & "#

Compartilhar este post


Link para o post
Compartilhar em outros sites
o padrao é MM/DD/AAAA para access

 

faça o teste

Siga o padrão que o Mário disse e simplifique, inicialmente, como o Patrique indicou, retirando a outra cláusula da SQL.

 

Dê um Response.Write e verifique se os dados estão de forma correta na SQL e retorne informando se funcionou.

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que bom que resolveu

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.