DATA MAIOR E MENOR
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?
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?
Poste a estrutura da sua tabela
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
rs.open [Ô]Select MAX(DATA) as DATAMAIOR, MIN(DATA) as DATAMENOR From TABELA Order By DATA[Ô]
TEXT1.TEXT = RS!DATAMAIOR
TEXT2.TEXT = RS!DATAMENOR
Formate as data para o padrão [ô]yyyy/mm/dd[ô] para que sua perquisa tenha o resultaldo correto e use o cdate.
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.
Segue Estrutura da Tabela.
Leandro,
No ACCESS, se me lembro, o formato aceito na data é [Ô]mm/dd/yyyy[Ô].
Experimenta mudar isso que deve ajudar:
Ex.:
de
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[Ô]) & [Ô]# [Ô]
Nada amigos, fiz todas as mudanças solicitadas e ainda continua do mesmo jeito...
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!
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!
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.
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