Ir para conteúdo

POWERED BY:

Arquivado

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

Chakan

Busca com data

Recommended Posts

Pessoal eu queria saber como que faz pra que no formulario de busca seja posta uma opção que faça a busca ser baseada em uma data definida pelo usuário.Por exemplo, tem la o radio button "3 meses atras" que se selecionado mostraria os resultados soh de 3 meses atrás.Eu pensei em usar o DateAdd pra efetuar isso..mas como fazer para que haja uma conexão entre o campo data da tabela do banco de dados e o radio button do formulario referente a esses 3 meses atrás?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Busca no fórum, tem vários posts sobre esse assuntovocê tem q alterar seu SQL, por exemplo:"Select * from tabela where month(data) > (mês atual - 3)"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Formulário:<form action="pagina.asp" method="post"><input type="radio" name="periodo" value="3m">3 Meses<br><input type="radio" name="periodo" value="1m">1 Mês<br><input type="radio" name="periodo" value="hoje">Hoje<br>pagina.asp:select case request.form("periodo") case "3m" SQL = "Select * from tabela where month(data) > (mês atual - 3)"por aí vai

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ahh agora ta mais claro. Nas coisas que achei na busca num vi nada explicando a conexao com o formulario.Assim, esse metodo funciona com Access ou soh SQL? Eh que estou usando Access.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O seu jeito aparentemente nao deu certo. Mas eu testei um outro aqui, usando o DateAdd. Nenhum erro deu mas tb nao deu certo:<%if (request("periodo") = "3m") then SQL = "SELECT * FROM Agencia WHERE Data < #" & DateAdd("m",-3,date()) & "#" end if%>Creio que esse está certo, mas o local que eu to pondo que deve tar errado. Na pagina asp, que abre com os resultados da busca, em que parte do codigo eu devo por pra que funcione? Eu to colocando após isso:<%Dim rsWebDim rsWeb_numRowsSet rsWeb = Server.CreateObject("ADODB.Recordset")rsWeb.ActiveConnection = MM_connWeb_STRINGrsWeb.Source = "SELECT * FROM agencia WHERE Titulo LIKE '%" + Replace(rsWeb__MMColParam, "'", "''") + "%' OR Intertitulo LIKE '%" + Replace(rsWeb__MMColParam, "'", "''") + "%' OR Data LIKE '%" + Replace(rsWeb__MMColParam, "'", "''")+ "%' ORDER BY Registro DESC"rsWeb.CursorType = 0rsWeb.CursorLocation = 2rsWeb.LockType = 1rsWeb.Open()rsWeb_numRows = 0%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza aprendi que tenho que substituir meu SQL existente:Coloquei assim agora:if (request("periodo") = "3m") then rsWeb.Source = "SELECT * FROM agencia WHERE Titulo LIKE '%" + Replace(rsWeb__MMColParam, "'", "''") + "%' OR Intertitulo LIKE '%" + Replace(rsWeb__MMColParam, "'", "''") + "%' OR Data < #" & DateAdd("m",-3,date()) & "# LIKE '%" + Replace(rsWeb__MMColParam, "'", "''") + "%' ORDER BY Registro DESC"if (request("periodo") = "") then rsWeb.Source = "SELECT * FROM agencia WHERE Titulo LIKE '%" + Replace(rsWeb__MMColParam, "'", "''") + "%' OR Intertitulo LIKE '%" + Replace(rsWeb__MMColParam, "'", "''") + "%' OR Data LIKE '%" + Replace(rsWeb__MMColParam, "'", "''") + "%' ORDER BY Registro DESC"Nenhum erro, mas ainda nao ta funcionando. Grrr.

Compartilhar este post


Link para o post
Compartilhar em outros sites

if (request("periodo") = "3m") then rsWeb.Source = "SELECT * FROM agencia WHERE Titulo LIKE '%" + Replace(rsWeb__MMColParam, "'", "''") + "%' OR Intertitulo LIKE '%" + Replace(rsWeb__MMColParam, "'", "''") + "%' OR Data LIKE '%" + Replace(rsWeb__MMColParam, "'", "''") + "%' Data < #" & DateAdd("m",-3,date()) & "# ORDER BY Registro DESC"Coloquei assim agora. Da erro (sinal que o If ta pegando mesmo o 3m).Erro:Syntax error (missing operator) in query expression 'Titulo LIKE '%carro%' OR Intertitulo LIKE '%carro%' OR Data LIKE '%carro%' Data < #22/5/2006#'. O que ta faltando gente? ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Substitui sua SQL...... não dava certo pq o campo DATA deve ser MAIOR que 3 meses atrás:if (request("periodo") = "3m") then rsWeb.Source = "SELECT * FROM agencia WHERE Titulo LIKE '%"& Replace(rsWeb__MMColParam, "'", "''") &"%' OR Intertitulo LIKE '%"& Replace(rsWeb__MMColParam, "'", "''") &"%' OR Data > "& DateAdd("m",-3,date()) &" ORDER BY Registro DESC"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloquei desse modo, o erro some mas nao funciona. Ele mostra resultados de agosto até abril (mes mais antigo no banco).Aliás, precisa manter isso em alguma parte depois do Data:LIKE '%" + Replace(rsWeb__MMColParam, "'", "''") + "%'Senao a busca procura em todas as tabelas do banco. Mas com isso ae ela soh faz a busca na parte do Titulo, deixando a busca mais objetiva.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Putz..agora eu vi no banco de dados.A coluna da Data, dentro da tabela, ta como texto e nao como Data/Hora. Vai ver eh por isso que nao deu certo. Vou testar depois mudando pra Data/Hora pra ver se funciona.EDIT: Eh, era isso mesmo. Agora funcionou! Valeu ae Ultra!Codigo:if (request("periodo") = "3m") then rsWeb.Source = "SELECT * FROM agencia WHERE Data > #" & DateAdd("m",-3,date()) & "# ORDER BY Registro DESC"Mostra tudo de somente 3 meses atrás.if (request("periodo") = "3m") then rsWeb.Source = "SELECT * FROM agencia WHERE Data < #" & DateAdd("m",-3,date()) & "# ORDER BY Registro DESC"Mostra tudo anterior a 3 meses atrás. Soh mudei o sinal de > pra < hehe

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.