BUSCA VENCIMENTO
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.
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.
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.
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)
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)
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?
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?
irenko na verdade você deve salvar o vencimento como uma data, e depois usar o datediff para saber a quantidade de dias em atraso.
Pois bem, e como ficaria isso dentro de um select?
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
[ô]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
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.
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.
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?
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?
Alguem por gentileza.
ja tirou o -1 pra ver
09 pra 10 = 1 porem se você coloca em seguida um -1 vai ser = 0
09 pra 10 = 1 porem se você coloca em seguida um -1 vai ser = 0
Tópico encerrado , respostas não são mais permitidas