SALDO DA CONTA CORRENTE COM UMA EXPRESSAO SQL
Estou precisando retornar o saldo altual de uma conta corrente por meio de uma expressão SQL. e não estou conseguindo montar a expressão!!
Provissóriamente estou usando está função!!
Gostaria de usar uma expressão SQL que retornasse o saldo da CC
Mreginalacera@ig.com.br
desdeja muito obrigado!!
Provissóriamente estou usando está função!!
Public Function SaldoCCNaData(DataOperacaoOuConsolidada As String, DataDeterminada As Variant, NrDaContaCorrente As Double, SoNaoConsolidados As Boolean) As Double
Dim MinhaQuery As String
Dim MeuREC As Recordset
SaldoCCNaData = 0
If DataOperacaoOuConsolidada = "DataOeração" And SoNaoConsolidados = True Then
MinhaQuery = "SELECT * FROM TBMovimentacaoContaCorren WHERE (IdCorrentista = " & NrDaContaCorrente & ") AND " & DataOperacaoOuConsolidada & " < CDate('" & DataDeterminada & "') AND (Dataconsolidado Is Null)"
Else
MinhaQuery = "SELECT * FROM TBMovimentacaoContaCorren WHERE (IdCorrentista = " & NrDaContaCorrente & ") AND " & DataOperacaoOuConsolidada & " < CDate('" & DataDeterminada & "')"
End If
Set MeuREC = vgDb.OpenRecordSet(minhaQuery, dbOpenDynaset)
If MeuREC.RecordCount > 0 Then
MeuREC.MoveFirst
Do While Not MeuREC.EOF
If MeuREC![DébitoCredito] = 0 Then
SaldoCCNaData = (SaldoCCNaData - MeuREC!Valor)
End If
If MeuREC![DébitoCredito] = 1 Then
SaldoCCNaData = (SaldoCCNaData + MeuREC!Valor)
End If
MeuREC.MoveNext
Loop
Else
SaldoCCNaData = 0
End If
If Not MeuREC Is Nothing Then
MeuREC.Close
Set MeuREC = Nothing
End If
End Function
Gostaria de usar uma expressão SQL que retornasse o saldo da CC
Mreginalacera@ig.com.br
desdeja muito obrigado!!
Colega, teste do seguinte modo e qualquer dúvida poste:
Falow...
Public Function SaldoCCNaData(DataOperacaoOuConsolidada As String, DataDeterminada As Variant, NrDaContaCorrente As Double, SoNaoConsolidados As Boolean) As Double
Dim MinhaQuery As String
Dim MeuREC As Recordset
'Monta a condição para selecionar a conta
If DataOperacaoOuConsolidada = "DataOeração" And SoNaoConsolidados = True Then
MinhaQuery = " WHERE (IdCorrentista = " & NrDaContaCorrente & ") AND " & DataOperacaoOuConsolidada & " < CDate('" & DataDeterminada & "') AND (Dataconsolidado Is Null)"
Else
MinhaQuery = " WHERE (IdCorrentista = " & NrDaContaCorrente & ") AND " & DataOperacaoOuConsolidada & " < CDate('" & DataDeterminada & "')"
End If
'Monta a SubQuery, que retornará o valor das contas em Saldo, tipo se tivermos os registros:
'DébitoCredito | Valor
'0 | 100
'0 | 150
'0 | 50
'1 | 200
'Retornaria:
'DébitoCredito | ValTotal
'0 | -300
'1 | +200
MinhaQuery = "SELECT Sum(Valor) * CInt(Iif([DébitoCredito] = 0, -1, 1)) As ValTotal, [DébitoCredito] FROM TBMovimentacaoContaCorren " & _
MinhaQuery & _
" GROUP BY [DébitoCredito]"
'Esta query somará os dados da query acima, retornando assim:
'Saldo = -100 ( = -300 + 200)
MinhaQuery = "SELECT SUM(ValTotal) As Saldo FROM (" & MinhaQuery & ")"
Set MeuREC = vgDb.OpenRecordSet(MinhaQuery, dbOpenDynaset)
If MeuREC.RecordCount > 0 Then
SaldoCCNaData = MeuREC!Saldo
Else
SaldoCCNaData = 0
End If
If Not MeuREC Is Nothing Then
MeuREC.Close
Set MeuREC = Nothing
End If
End Function
Falow...
Obrigado, Vou por na pratica..
Citação:MARCO LACERA escreveu:
Obrigado, Vou por na pratica..
Blz, qualquer dúvida poste ^^....flw
MATIOLI quem sabe sabe... MUITO OBRIGADO!!!
Tópico encerrado , respostas não são mais permitidas