VALOR RETORNANDO COMO NEGATIVO
Estou Usando uma Query para contar dias em atraso, sendo q após um dia de vencimento o resultado fica negativo.. Vejam como esta imagem
já tentei usar (CDBL, CCUR... ETC....
--
Public Sub BuscaParc()
Dim DiasAtraso As Integer
Set Rst = New ADODB.Recordset
Sql = [Ô]Select Id, DtVencto, VlrParc, PrazoPgto, DateDiff(Now(), DtVencto) As DiasAtraso From Tbl_Receber Where IdCli = [ô][Ô] & TxtId.Text & [Ô][ô]And Status =[ô]Em Aberto[ô] Order By DtVencto Asc[Ô]
Rst.Open Sql, Conexao, 3
If Not Rst.EOF Then
With G
.Rows = 1
.Cols = 6
.ColWidth(0) = 0
.ColWidth(1) = 1555
.ColWidth(2) = 1555
.ColWidth(3) = 1111
.ColWidth(4) = 1111
.ColWidth(5) = 1555
[ô]Cabecalho do Grid
.TextMatrix(0, 0) = [Ô]Id[Ô]
.TextMatrix(0, 1) = [Ô]Dt. Vencto[Ô]
.TextMatrix(0, 2) = [Ô]Vlr. Parc R$[Ô]
.TextMatrix(0, 3) = [Ô]Parc.[Ô]
.TextMatrix(0, 4) = [Ô]Dias Atraso[Ô] <------------
.TextMatrix(0, 5) = [Ô]Vlr. a Pagar R$[Ô] <---------
End With
I = 1
Do While Not Rst.EOF
With G
.Rows = I + 1
.TextMatrix(I, 0) = [Ô][Ô] & Rst!Id
.TextMatrix(I, 1) = [Ô][Ô] & Format(Rst!DtVencto, [Ô]dd/mm/yyyy[Ô])
.TextMatrix(I, 2) = [Ô][Ô] & Format(Rst!VlrParc, [Ô]###,##0.00[Ô])
.TextMatrix(I, 3) = [Ô][Ô] & Rst!PrazoPgto <--------
.TextMatrix(I, 4) = [Ô][Ô] & Rst!DiasAtraso <------
xValor = CDbl(Format(Rst!VlrParc, [Ô]###,##0.00[Ô])) [ô]Valor
xDias = CDbl(Rst!DiasAtraso) [ô]Dias
xJuros = CDbl([Ô]0,08[Ô]) [ô]Formula do Calculo:=> 8/100 = 0,08
[ô]For xCont = 1 To xDias
xTemp = (xValor * xJuros)
xValor = (xTemp * xDias) + xValor
[ô]Next xCont
.TextMatrix(I, 5) = Format(xValor, [Ô]###,##0.00[Ô])
End With
I = I + 1
Rst.MoveNext
xValor = 0 [ô]Limpando a varÃavel
xDias = 0 [ô]Limpando a varÃavel
xJuros = 0 [ô]Limpando a varÃavel
Loop
Else
MsgBox ([Ô]Não há RegistroS[Ô]), vbCritical, [Ô]ATENÇÃO[Ô]
End If
Rst.Close
Set Rst = Nothing
End Sub
--
já tentei usar (CDBL, CCUR... ETC....
--
Public Sub BuscaParc()
Dim DiasAtraso As Integer
Set Rst = New ADODB.Recordset
Sql = [Ô]Select Id, DtVencto, VlrParc, PrazoPgto, DateDiff(Now(), DtVencto) As DiasAtraso From Tbl_Receber Where IdCli = [ô][Ô] & TxtId.Text & [Ô][ô]And Status =[ô]Em Aberto[ô] Order By DtVencto Asc[Ô]
Rst.Open Sql, Conexao, 3
If Not Rst.EOF Then
With G
.Rows = 1
.Cols = 6
.ColWidth(0) = 0
.ColWidth(1) = 1555
.ColWidth(2) = 1555
.ColWidth(3) = 1111
.ColWidth(4) = 1111
.ColWidth(5) = 1555
[ô]Cabecalho do Grid
.TextMatrix(0, 0) = [Ô]Id[Ô]
.TextMatrix(0, 1) = [Ô]Dt. Vencto[Ô]
.TextMatrix(0, 2) = [Ô]Vlr. Parc R$[Ô]
.TextMatrix(0, 3) = [Ô]Parc.[Ô]
.TextMatrix(0, 4) = [Ô]Dias Atraso[Ô] <------------
.TextMatrix(0, 5) = [Ô]Vlr. a Pagar R$[Ô] <---------
End With
I = 1
Do While Not Rst.EOF
With G
.Rows = I + 1
.TextMatrix(I, 0) = [Ô][Ô] & Rst!Id
.TextMatrix(I, 1) = [Ô][Ô] & Format(Rst!DtVencto, [Ô]dd/mm/yyyy[Ô])
.TextMatrix(I, 2) = [Ô][Ô] & Format(Rst!VlrParc, [Ô]###,##0.00[Ô])
.TextMatrix(I, 3) = [Ô][Ô] & Rst!PrazoPgto <--------
.TextMatrix(I, 4) = [Ô][Ô] & Rst!DiasAtraso <------
xValor = CDbl(Format(Rst!VlrParc, [Ô]###,##0.00[Ô])) [ô]Valor
xDias = CDbl(Rst!DiasAtraso) [ô]Dias
xJuros = CDbl([Ô]0,08[Ô]) [ô]Formula do Calculo:=> 8/100 = 0,08
[ô]For xCont = 1 To xDias
xTemp = (xValor * xJuros)
xValor = (xTemp * xDias) + xValor
[ô]Next xCont
.TextMatrix(I, 5) = Format(xValor, [Ô]###,##0.00[Ô])
End With
I = I + 1
Rst.MoveNext
xValor = 0 [ô]Limpando a varÃavel
xDias = 0 [ô]Limpando a varÃavel
xJuros = 0 [ô]Limpando a varÃavel
Loop
Else
MsgBox ([Ô]Não há RegistroS[Ô]), vbCritical, [Ô]ATENÇÃO[Ô]
End If
Rst.Close
Set Rst = Nothing
End Sub
--
tirei isso do help do access:
então experimente inverter os parâmetros de entrada em DateDiff
DateDiff([ô]d[ô], DtVencto, Now())
Citação:
Sintaxe
DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
Se date1 se referir a um ponto no tempo posterior a date2, a função DifData retornará um número negativo.
então experimente inverter os parâmetros de entrada em DateDiff
DateDiff([ô]d[ô], DtVencto, Now())
não deu certo, erro---> O driver OBDBC nao oferece suporte para propriedades Solicidatas
O db usado é MYSQL
O db usado é MYSQL
Converta para valor absoluto: ABS
Citação::
não deu certo, erro---> O driver OBDBC nao oferece suporte para propriedades Solicidatas
O db usado é MYSQL
DateDiff tem no MYSQL ? Eu não sei.
Eu me guiei pelo que vc postou. Se tem, então tire o parâmetro [ô]d[ô] da função pra ver
Ola, RODRIGOMARCHESE, funcionou. blz.. com ABS
Por Favor, tem um outro probleminha.. As Datas a Serem Vencidas não Deveriam Contar Dias de Atrasos. o deve esta errado ak
Sql = [Ô]Select Id, DtVencto, VlrParc, PrazoPgto, DateDiff(Now(), DtVencto) As DiasAtraso From Tbl_Receber Where IdCli = [ô][Ô] & TxtId.Text & [Ô][ô]And Status =[ô]Em Aberto[ô] Order By DtVencto Asc[Ô]
Por Favor, tem um outro probleminha.. As Datas a Serem Vencidas não Deveriam Contar Dias de Atrasos. o deve esta errado ak
Sql = [Ô]Select Id, DtVencto, VlrParc, PrazoPgto, DateDiff(Now(), DtVencto) As DiasAtraso From Tbl_Receber Where IdCli = [ô][Ô] & TxtId.Text & [Ô][ô]And Status =[ô]Em Aberto[ô] Order By DtVencto Asc[Ô]
Tópico encerrado , respostas não são mais permitidas