BUSCA VENCIMENTO

IRENKO 02/09/2014 12:33:08
#440859
Pessoal, a tabela dados do meu banco contem os campos Nome e Vencimento. No campo Vencimento esta gravado somente o dia do mês, preciso fazer um select que me retorne em um flexgrid todos os estão = ou > que o dia gravado no campo Vencimento e os que estiverem a > mostrar quantos dias esta vencido. Como ficaria esse Select? meu banco é access. desde ja agradeço.
FILMAN 02/09/2014 18:13:43
#440881
Qual o banco?
O campo Vencimento tendo somente o dia não tem como criar uma baseamento sobre quantos dias faltam!

Mostre parte do conteúdo da tabela aqui para que possamos ajuda-lo.
MARCELO.TREZE 02/09/2014 18:47:12
#440883
Vamos ver se dá certo

select *from tabela where vencimento > = day(now())

agora os que estiverem maior aconselho a colocar o calculo no flexgrid

exemplo

msflexgrid.TextMatrix(0,1) = rs!vencimento
msflexgrid.TextMatrix(0,2) = day(date) - cint(msflexgrid.TextMatrix(0,1)

IRENKO 02/09/2014 22:04:56
#440893
Marcelo, ficou assim adaptando sua dica:

mSql = [Ô]SELECT Dados.Locatario, Dados.Vencimento,Dados.valor FROM Dados where Dados.vencimento <= day(now())GROUP BY Dados.Locatario,Dados.Vencimento,Dados.valor;[Ô]

só quê, analisando a rotina acho que o Filman tem razão. Se o vencimento do cara é todo dia 28 do mês 08, hoje sua fatura estaria vencida e estaria com 06 dias de atraso, correto? Na minha tabela não tem o campo do Mês. Se eu criar o campo e colocar o valor do mês daria pra fazer o calculo? E como ficaria o Select?
MARCELO.TREZE 02/09/2014 22:55:16
#440896
irenko na verdade você deve salvar o vencimento como uma data, e depois usar o datediff para saber a quantidade de dias em atraso.

IRENKO 03/09/2014 08:13:48
#440905
Pois bem, e como ficaria isso dentro de um select?
FABRICIOWEB 03/09/2014 09:21:18
#440906
Resposta escolhida
Dim result As String

[ô]campo da sua base de dados com a data do vencimento
Data1.RecordSource = [Ô]SELECT * FROM CAIXA WHERE venc1 < NOW()[Ô]
Data1.Refresh
[ô]campo da sua base de dados com a data do vencimento
result = [Ô]Dias Atrasados [Ô] & DateDiff([Ô]d[Ô], Now, Data1.Recordset.Fields([Ô]venc1[Ô]).Value)
result = Replace(result, [Ô]-[Ô], [Ô][Ô]) [ô]tira o sinal negativo

MsgBox result
IRENKO 04/09/2014 20:00:21
#440962
Feito tudo dentro do select:

mSql = [Ô] SELECT Dados.Locatario, Dados.VencimentoMes,DateDiff([ô]d[ô], Dados.VencimentoMes, now()-1)AS Dias, Dados.valor [Ô] + _
[Ô] FROM Dados WHERE (((Dados.vencimentoMes) < Now() - 1)) [Ô] + _
[Ô] GROUP BY Dados.Locatario, Dados.VencimentoMes, Dados.valor;[Ô]


Obrigado a todos.
IRENKO 10/09/2014 13:27:12
#441117
Vixi!!! Pensei que tinha resolvido isso com esse select!

mSql = [Ô] SELECT Dados.Locatario, Dados.VencimentoMes,DateDiff([ô]d[ô], Dados.VencimentoMes, now()-1)AS Dias, Dados.valor [Ô] + _
[Ô] FROM Dados WHERE (((Dados.vencimentoMes) < Now() - 1)) [Ô] + _
[Ô] GROUP BY Dados.Locatario, Dados.VencimentoMes, Dados.valor;[Ô]

Tenho um vencimento em 09/09/2014, devia retornar um dia mas esta retornando 0 dias. Tirei o -1 mas não adiantou. Qual o bug no select?
IRENKO 10/09/2014 17:22:34
#441121
Alguem por gentileza.
MARCELO.TREZE 10/09/2014 20:37:50
#441127
ja tirou o -1 pra ver

09 pra 10 = 1 porem se você coloca em seguida um -1 vai ser = 0
Página 1 de 2 [12 registro(s)]
Tópico encerrado , respostas não são mais permitidas