Ir para conteúdo
Fórum Script Brasil
  • 0

Listar registros por data?


marcus Gemeos

Pergunta

Pessoal,

Eu gostaria de saber, como faço para um busca no sistema só listar pessoas por data? Ou seja, tem um registro que contem um campo chamado "vencimento", se a data cadastrada neste campo, for menor que a data atual, listasse (imprimisse...)

Eu tenho já o comando de imprimir a data atual:

VarData = "" & day(date) & "/" & month(date) & "/" & year(date) & ""

Esse comando "captura" a data atual.

Resumindo: Um sistema que listasse registros que tenha a data vencida!

Abraços!

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Jonathan,

O código funcionou assim:

sqlProd2 = "Select * from tabela where campo_data > " & date() & " order by campo_data"

Na prática, a data do campo 5/12/2008 é menor do que a data atual (9/12/2008) então liste... você ver que o ">" foi invertido!

E além do mais, o sistema ler a data sem o "0". Invés de 05/12/2008 é 5/12/2008.

Também gostaria de saber, como faz, se alguém digitar o "0" no campo, e não cadastrar...?

E além do mais, percebir que o código só ler o primeiro número, no caso "5/..."

Abraços!

Editado por marcus Gemeos
Link para o comentário
Compartilhar em outros sites

  • 0

Marcus, a primeira pergunta é: sua dúvida nesse link foi respondida: http://scriptbrasil.com.br/forum/index.php?showtopic=129770?

se sim, retorne ao tópico e poste o código da forma correta, apresentando a solução para outros usuários que venham ter a mesma dúvida...

Com relação a essa dúvida de agora o select deverá ser algo parecido com isso (adapte da forma que lhe convier):

sql = " select * from sua_tabela where campo_data_bd < #" & (data) & "#" 
'sendo data a data atual!
se você quiser que pegue a data inclusive de hoje faça assim:
sql = " select * from sua_tabela where campo_data_bd <= #" & (data) & "#"
apartir daqui basta substituir o < por > para inverter a pesquisa... se quiser ordenar as datas em ordem crescente use:
sql = " select * from sua_tabela where campo_data_bd < #" & (data) & "# order by campo_data asc"
quanto ao fato da pessoa digitar algo no campo que não seja possivel o cadastro você tem como fazer alertas em javascript "proibindo" que o form seja submetido... aparecerá uma mensagem na tela para que o user corrija as informações necessárias e só então (se estiver tudo ok) o formulario será submetido... com relação ao 0 na frente dos numeros de 1 a 9 nas datas eu corrijo usando datepart para desmembrar a data em dia, mes e ano e depois coloco condicionais para agragar o zero... apenas um exemplo abaixo... ficará facil adaptar para o resto e tem muita coisa no google tb!
dia = datepart ("d", data)
mes = datepart ("m", data)
ano = datepart ("yyyy", data)
if dia < 10 then
dia = "0"&dia
end if
response.write dia&"/"&mes&"/"&ano

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Rafael,

Por incrível que pareça, para listar resgistros que tenham a data menor que a data atual, invertir de "<" para ">" e deu certo!

Tipo: campo_data > data atual. Então se hoje forem 10/12/2008 a data para ser listada tem que ser no máximo 09/12/2008. Isso porque invertir o sinal ">".

E enquanto ao "0", eu quero removê-lo e não acrescentá-los!

Obrigado por tudo!

Marcus

Link para o comentário
Compartilhar em outros sites

  • 0

Legal... q bom que resolveu...

Vi que você postou dois tópicos quase iguais! um deles foi removido... Procure não repetir essa prática, ok?

Bom... quanto ao fato de você ter tido que inverter o sinal... olha "logicamente" falando isso está errado... meu palpite?!? meu palpite é que suas datas estão sendo de certa forma invertidas... debug as suas datas e sua query com response.write e poste aqui os resultados para termos certeza de que esteja tudo certo, ok?

quanto ao 0 não entendi exatamente o que você esta tentando fazer... se puder explicar melhor talvés eu tb possa te ajudar!

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

  • 0

Olá amigo,

Meu código está com bug:

VarData = "" & day(date) & "/" & month(date) & "/" & year(date) & ""

sqlProd = "Select * from clientes where dt_prox_venc < #" & VarData & "# order by dt_prox_venc"

O campo "dt_prox_venc " está com dado 8/12/2008, mas não lista... só se seu invreter o sinal "<".

E a VarDATA está imprimindo "10/12/2008"

*Há desculpa pelo tópico duplicado!

Editado por marcus Gemeos
Link para o comentário
Compartilhar em outros sites

  • 0

Tente três coisas:

1) coloque session.lcid = 1046 no começo de seu código... se não fnucionar tente a dica 2!

2) Formate sua variavel data da seguinte forma e teste:

VarData = (day(date) & "/" & month(date) & "/" & year(date))
3) se continuar não funcionando inverta sua data:
VarData = (month(date) & "/" & day(date) & "/" & year(date))

poste aqui os resultados...

Link para o comentário
Compartilhar em outros sites

  • 0

Olá amigo,

Eu tentei os três... e não lista... a data no banco está "8/12/2008". E hoje juntamente com o PC, são 10/12/2008.

Nem sei mais o que fazer... não sei como ele lê o código...

VarData = (month(date) & "/" & day(date) & "/" & year(date))

'VarData = (day(date) & "/" & month(date) & "/" & year(date)) *comentado e testado  não deu certo

'VarData = "" & day(date) & "/" & month(date) & "/" & year(date) & "" *comentado e testado  não deu certo


sqlProd = "Select * from clientes where dt_prox_venc < #" & VarData & "# order by dt_prox_venc"

Editado por marcus Gemeos
Link para o comentário
Compartilhar em outros sites

  • 0

Abaixo segue o código da página completa...

<!--#include file="conexao_dados.asp"-->
<%
if Session("Usuario") = "" then
Response.Redirect "usuario_nao_identificado.asp"
end if

Dim Conexao

VarData = (month(date) & "/" & day(date) & "/" & year(date))
'VarData = (day(date) & "/" & month(date) & "/" & year(date))

'VarData = "" & day(date) & "/" & month(date) & "/" & year(date) & ""
'novaData =  dateadd("d", 31, VarData)

sqlProd = "Select * from clientes where dt_prox_venc < #" & VarData & "# order by dt_prox_venc"

%>

<html>

<head>
<meta http-equiv="Content-Language" content="pt-br">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>:: Programa IP IDEAL ::</title>
</head>

<body>

<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1" height="108">
  <tr>
    <td width="100%" height="75">
    <p align="center"><img border="0" src="imagens/logo1.jpg"></td>
  </tr>
  <tr>
    <td width="100%" height="33">
    <p align="center">
        <font color="#FFFFFF" face="Verdana" size="1"><b>.</b></font><font face="Verdana"><span style="font-size: 8pt; font-weight: 700">:: Programa IP IDEAL ::</span></font></td>
  </tr>
</table>

<table border="0" width="100%" cellspacing="1" cellpadding="0">
  <tr>
    <td width="100%" bgcolor="#FFFFFF">
      <font size="2" face="Verdana">:: <b>Seção lista de 
      clientes em débitos</b>, bem vindo(a) <font color="#008080"><%=Session("Usuario")%></font></font></td>
  </tr>
  <tr>
    <td width="100%" bgcolor="#FFFFFF">
      &nbsp;</td>
  </tr>
  <tr>
    <td width="100%" bgcolor="#FFFFFF">
      <form method="POST" action="<%= Request.ServerVariables("SCRIPT_NAME") %>">
        <p>
        <input type="submit" value="*Listar novamente todos os clientes em débitos" name="Blistar_clientes_debitos" style="font-family: Verdana; font-size: 10 px; float: right; border-style: solid; border-width: 1"></p>
      </form>
    </td>
  </tr>
  <tr>
    <td width="100%" bgcolor="#FFFFFF">
      <p align="left">&nbsp;</td>
  </tr>
</table>
<table border="0" width="100%" cellspacing="1" cellpadding="0">
  <tr>
    <td width="42%">
      &nbsp;</td>
  </tr>
</table>

<table border="0" width="519" cellspacing="1" cellpadding="0" height="1">
<%
'abre a conexao
Call abre_conexao

'executa a instrução SQL
Set rs = Conexao.Execute(sqlProd)

IF rs.EOF then
   Response.write "<i><font color=""#FF0000"">Não existem clientes em débitos!</font></i>"
ELSE
   While not rs.EOF
   %>
    <tr> 
      <td height="1" width="100000" bgcolor="#F2F2F2"> <font face="Verdana, Arial, Helvetica, sans-serif" size="1"> 
        <%
        Response.write "<br><b>Código: </b>" & rs("Codigo")
        Response.write "<br><b>Nome do responsável: </b>" & rs("nome")
        Response.write "<br><b>E-mail: </b>" & rs("email")
        Response.write "<br><b>Domínio: </b>" & rs("dominio")
        Response.write "<br><b>Data do vencimento: </b>" & rs("dt_prox_venc")
               
        %>
 </font> </td>
      <td height="1" width="42" align="center" bgcolor="#F2F2F2" valign="middle"> 
 <font face="Verdana, Arial, Helvetica, sans-serif" size="1"> 
        <form method="POST" action="listar_clientes_debitos_detalhes.asp?id=<%=rs("Codigo")%>">
  <p>
  <input type="submit" value="Detalhar" name="BDetalhes" style="border-style:solid; border-width:1; float: left; font-family:Verdana; font-size:10 px; color:#666666"></p>
</form>
        </font> </td>
      <td height="1" width="71"></td>
      <%
    rs.movenext
   Wend
   End If
   rs.Close
   'fecha a conexao
   Call fecha_conexao
   Set rs = Nothing%>
</td>
    </tr>
</table>

<p align="center">&nbsp;</p>





<form method="POST" action="secao_financas.asp">
  <p align="center">
  <input type="submit" value="» Voltar «" name="Bvoltar" style="font-family: Verdana; font-size: 10 px; border-style: solid; border-width: 1"></p>
</form>
<p align="center">&nbsp;</p>





<p align="center"></p>





</body>

</html>

O que está dentro da DB ACCESS no campo dt_prox_venc é exatamente isso: 8/12/2008

Será que não tinha outra forma...? :huh:

Eu acredito também amigo, que o BD ACCESS, não funcione como se fosse SQL Server!

Editado por marcus Gemeos
Link para o comentário
Compartilhar em outros sites

  • 0

Não não... nada a ver... de fato cada banco tem suas peculiaridades... mas pra tudo tem-se um jeito...

A primeira coisa a fazer é setar o formato de data regional... ou seja, coloque no início de seu código:

session.lcid = 1046
Abaixo disso resgate as datas e as formate... eu to vendo aqui que sua vriavel data é exatamente igual a date... portanto eu faria simplesmente:
VarData = date
'ao invés disso:
'VarData = (month(date) & "/" & day(date) & "/" & year(date))

teste e veja o que ocorre...

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

  • 0

Não tinha visto que era 2009! mas enfim... de que adianta migrar simplesmente... você tem mais conhecimento em SQL do que access???

Sim... sempre tem como fazer backup das informações! exportar / importar elas de um banco para outro é que nem sempre é possível, pois alguns dados podem vir corrompidos... e é impossível precisar quantos! pode ser alguns, todos ou nenhum!

Mas enfim... esse problema pode ser resolvido sim... basta que você leia com muita calma todos os meus posts e comece a fazer vários testes até achar a combinação perfeita para formatar sua data...

Se não está funcionando com session.lcid = 1046 você pode tentar com 1036...

ou até mesmo forçar em 1036 e depois passar para 1046...

você pode ainda dividir o date... usando datepart e separar dia, mês e ano... montando-os depois em uma string!

Problemas com datas são normais... e é extremamente difícil descobrir como consertá-los... mas a solução é SEMPRE simples... e sempre passa pelas dicas que lhe dei!

qualquer. coisa postaí!

Link para o comentário
Compartilhar em outros sites

  • 0

Pô... legal cara... pena que não consegui te ajudar mais... mas espero pelo menos ter dado uma luzinha que seja... faça umas experiências aí... conforme forem surgindo novos sintomas posta aqui que talves eu tenha uma luz de por onde ir tb... porque agora fiquei no escuro tb!

abração

Link para o comentário
Compartilhar em outros sites

  • 0

Olá pessoal,

Eu gostaria de saber, como faço para imprimir uma data já cadastrada no banco SQL Server em formato normal?

Pois a data que vem do banco, mesmo cadastrada corretamente, saí sem ordem. E isso implica se formos listar resgistros por data?

A minha SQL é esse:

'sqlProd = "Select * from clientes where dt_prox_venc < '" & VarData & "'"

Abraços!

Marcus Vinicius

Editado por marcus Gemeos
Link para o comentário
Compartilhar em outros sites

  • 0

Marcus...

Alguns links:

http://forum.imasters.uol.com.br/index.php?showtopic=307560

http://forum.imasters.uol.com.br/index.php?showtopic=295519

você deve fazer uma pesquisa no google antes de postar aqui... a literatura a respeito disso é vasta na internet...

Seu novo post foi mesclado ao antigo por eu entender tratar-se absolutamente do mesmo assunto e do mesmo problema.

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...