DATA MAIOR E MENOR

LEANDRO.BUENO 01/12/2009 09:18:17
#328897
Ola amigos,

Tenho no eu programa uma tela de pedidos de venda e cada vez que eu entro no sistema eu verifico as datas dos pedidos com a data atual.

No caso hoje é 01/12/2009 e tenho datas de entrega no dia 28/09/2009, 14/08/2009. 20/11/2009 e esta dizendo que esta pendente, no caso tem que estar atrasado.

eu faço o seguinte:

txts.text = [Ô]0[Ô]
txtdataatual.Text = Date
txtdataatual = Format(txtdataatual, [Ô]dd/mm/yyyy[Ô])

PARA VERIFICAR SE A DATA DO PEDIDO DE VENDA ESTA MENOR QUE A DATA ATUAL
With Adodc5
.ConnectionString = [Ô]provider = microsoft.jet.oledb.4.0;[Ô] & [Ô]data Source = [Ô] & App.Path & [Ô]\Cadastro.mdb; jet OLEDB:Database Password=leeday0312[Ô]
.CursorLocation = adUseClient
.RecordSource = [Ô]UPDATE PedidoVenda SET situacao = [ô]ATRASADO[ô] WHERE dataprevista < #[Ô] & txtdataatual & [Ô]# [Ô]
.ConnectionTimeout = 500
.Refresh
End With

PARA VERIFICAR SE A DATA DO PEDIDO DE VENDA ESTA MAIOR QUE A DATA ATUAL
With Adodc3
.ConnectionString = [Ô]provider = microsoft.jet.oledb.4.0;[Ô] & [Ô]data Source = [Ô] & App.Path & [Ô]\Cadastro.mdb; jet OLEDB:Database Password=leeday0312[Ô]
.CursorLocation = adUseClient
.RecordSource = [Ô]UPDATE PedidoVenda SET situacao = [ô]PENDENTE[ô] WHERE dataprevista > #[Ô] & txtdataatual & [Ô]# [Ô]
.ConnectionTimeout = 500
.Refresh
End With

PARA VERIFICAR SE O PEDIDO DE VENDA ESTA ENTREGUE
With Adodc5
.ConnectionString = [Ô]provider = microsoft.jet.oledb.4.0;[Ô] & [Ô]data Source = [Ô] & App.Path & [Ô]\Cadastro.mdb; jet OLEDB:Database Password=leeday0312[Ô]
.CursorLocation = adUseClient
[ô].RecordSource = [Ô]select * from PedidoVenda where dataprevista < #[Ô] & txtdataatual & [Ô]# order by format(dataprevista, [ô]yyyy/mm/dd[ô])[Ô]
.RecordSource = [Ô]UPDATE PedidoVenda SET situacao = [ô]ENTREGUE[ô] WHERE saldo = [ô][Ô] & txts & [Ô][ô][Ô]
.ConnectionTimeout = 500
.Refresh
End With

Uso banco de Dados Access.

Esta dando tudo pendente e funciona os Entregues, não esta avisando que esta Atrasado.

Podem me ajudar?
LEANDRO 01/12/2009 09:26:54
#328899
Poste a estrutura da sua tabela
JPAULO101 01/12/2009 09:28:51
#328900
Se entedi fica mais o mesmo assim.

rs.open [Ô]Select MAX(DATA) as DATAMAIOR, MIN(DATA) as DATAMENOR From TABELA Order By DATA[Ô]

TEXT1.TEXT = RS!DATAMAIOR
TEXT2.TEXT = RS!DATAMENOR
PARREIRA 01/12/2009 09:30:18
#328901
Resposta escolhida
Formate as data para o padrão [ô]yyyy/mm/dd[ô] para que sua perquisa tenha o resultaldo correto e use o cdate.
LEANDRO.BUENO 01/12/2009 09:30:47
#328902
Tipo eu ja tinha feito la pro dia 25/11 e até la funcionava, mas hoje 01/12 não funciona, creio que esta pegando o numero [Ô]1[Ô] em vez da data, e se eu voltar a data pra dia 25/11, dia 30/11 enfim funciona.

Segue Estrutura da Tabela.

RCMRO 01/12/2009 09:35:23
#328904
Leandro,

No ACCESS, se me lembro, o formato aceito na data é [Ô]mm/dd/yyyy[Ô].
Experimenta mudar isso que deve ajudar:

Ex.:
de
.RecordSource = [Ô]UPDATE PedidoVenda SET situacao = [ô]ATRASADO[ô] WHERE dataprevista < #[Ô] & txtdataatual & [Ô]# [Ô]
para
.RecordSource = [Ô]UPDATE PedidoVenda SET situacao = [ô]ATRASADO[ô] WHERE dataprevista < #[Ô] & FORMAT(txtdataatual, [Ô]mm/dd/yyyy[Ô]) & [Ô]# [Ô]
LEANDRO.BUENO 01/12/2009 09:46:59
#328907
Nada amigos, fiz todas as mudanças solicitadas e ainda continua do mesmo jeito...
PARREIRA 01/12/2009 09:54:37
#328910
Não funciona porque o vb6 para tratamento de intervalos de datas é uma merda,
se vc reparar 25/11 é maior que 01/12 faça as constas.Eu sempre gravo no banco de dados data invertida,foi a soluçar para resolver meu problema assim [ô]2009/11/25 não ''e maior que [ô]2009/12/01[ô] entendeu e na hora de exibir para o usuario eu mostro no formato [ô]dd/mm/yyyy[ô] e na hora de gravar eu gravo no formato [ô]yyyy/mm/dd[ô] foi um jeito que eu uso e nunca tive problema!
LEANDRO.BUENO 01/12/2009 10:08:54
#328911
Realmente PARREIRA uma merda mesmo, tratamento de datas no vb6..

Mas deu certo, fiz como vc falou estou exibindo de forma [ô]dd/mm/yyyy[ô] para o usuário e na hora de gravar estou gravando com o cdate(txtdataprevista) mais ai na hora do sql deixei o txtdataatual no formato [ô]yyyy/mm/dd[ô].

Fui na access e coloquei o formato do campo data como Data geral.

Fiz os testes e deu certo.

Agradeço a todos pela ajuda e pelas dicas.

Grato.
Tópico encerrado , respostas não são mais permitidas