Amigos boa tarde!
Tenho duas tabelas uma chamada CTB e outra CadCom
a tabela ctb recebe oa lancamnetos credito e debito de uma detrminada conta.
Seus campos sao:Data,CONTA,doc,Debito credito, historico e IDLanc.
A tabela cadcon tem os campos: Conta ,NmConta e saldo
estou tentando criar uam funçao que filtre os dados na tabela CTB por um detrmindao periodo por exemplo entre01/03/2024 e 31/03/2024
Digamos que nesse periodo varias contas foram lancadas na tabela CTB, oque preciso e somar os valores credito e debito dessas contas
fazer um saldo CREd-deb e lancar na tabela cadcon cada valor na conta expecifica com ajuda de amigo cirei a seguinte funçao:
Sub AtualizaSaldoContas9400()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim total As Double
Dim totalGeral As Double
Dim sql As String
Dim dtInicial As String
Dim dtFinal As String
Dim contaAtual As String
' Pegando os valores das caixas de texto de data no formulário
dtInicial = Format(Me.dtini, "\#mm\/dd\/yyyy\#")
dtFinal = Format(Me.dtfim, "\#mm\/dd\/yyyy\#")
' Abre a base de dados atual
Set db = CurrentDb
' SQL para selecionar os valores da tabela CTB filtrando pelas contas e datas
sql = "SELECT conta, SUM(saldo) AS TotalSaldo FROM CTB " & _
"WHERE conta BETWEEN 9401 AND 9499 " & _
"AND DataLancamento BETWEEN " & dtInicial & " AND " & dtFinal & " " & _
"GROUP BY conta"
' Depuração: Exibir a consulta SQL gerada
Debug.Print sql
' Abre o recordset com a consulta
Set rs = db.OpenRecordset(sql)
' Inicializa os totais
totalGeral = 0
' Percorre o recordset para atualizar os saldos das contas e calcular o total geral
Do While Not rs.EOF
contaAtual = rs!conta
total = rs!TotalSaldo
' Atualiza o saldo da conta correspondente na tabela cadcon
db.Execute "UPDATE cadcon SET saldo = " & total & " WHERE conta = " & contaAtual
' Acumula o valor no total geral
totalGeral = totalGeral + total
' Avança para a próxima conta
rs.MoveNext
Loop
' Fecha o recordset
rs.Close
' Atualiza o saldo da conta 9400 na tabela cadcon com o total geral
db.Execute "UPDATE cadcon SET saldo = " & totalGeral & " WHERE conta = 9400"
' Mensagem de confirmação
MsgBox "O saldo da conta 9400 foi atualizado com o total geral: " & totalGeral
' Limpa objetos
Set rs = Nothing
Set db = Nothing
End Sub
so que esta dando erro
nessa LInha Set rs = db.OpenRecordset(sql) da o erro 3061 paramnetros insuficientes alguem pode ajudar?
Tenho duas tabelas uma chamada CTB e outra CadCom
a tabela ctb recebe oa lancamnetos credito e debito de uma detrminada conta.
Seus campos sao:Data,CONTA,doc,Debito credito, historico e IDLanc.
A tabela cadcon tem os campos: Conta ,NmConta e saldo
estou tentando criar uam funçao que filtre os dados na tabela CTB por um detrmindao periodo por exemplo entre01/03/2024 e 31/03/2024
Digamos que nesse periodo varias contas foram lancadas na tabela CTB, oque preciso e somar os valores credito e debito dessas contas
fazer um saldo CREd-deb e lancar na tabela cadcon cada valor na conta expecifica com ajuda de amigo cirei a seguinte funçao:
Sub AtualizaSaldoContas9400()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim total As Double
Dim totalGeral As Double
Dim sql As String
Dim dtInicial As String
Dim dtFinal As String
Dim contaAtual As String
' Pegando os valores das caixas de texto de data no formulário
dtInicial = Format(Me.dtini, "\#mm\/dd\/yyyy\#")
dtFinal = Format(Me.dtfim, "\#mm\/dd\/yyyy\#")
' Abre a base de dados atual
Set db = CurrentDb
' SQL para selecionar os valores da tabela CTB filtrando pelas contas e datas
sql = "SELECT conta, SUM(saldo) AS TotalSaldo FROM CTB " & _
"WHERE conta BETWEEN 9401 AND 9499 " & _
"AND DataLancamento BETWEEN " & dtInicial & " AND " & dtFinal & " " & _
"GROUP BY conta"
' Depuração: Exibir a consulta SQL gerada
Debug.Print sql
' Abre o recordset com a consulta
Set rs = db.OpenRecordset(sql)
' Inicializa os totais
totalGeral = 0
' Percorre o recordset para atualizar os saldos das contas e calcular o total geral
Do While Not rs.EOF
contaAtual = rs!conta
total = rs!TotalSaldo
' Atualiza o saldo da conta correspondente na tabela cadcon
db.Execute "UPDATE cadcon SET saldo = " & total & " WHERE conta = " & contaAtual
' Acumula o valor no total geral
totalGeral = totalGeral + total
' Avança para a próxima conta
rs.MoveNext
Loop
' Fecha o recordset
rs.Close
' Atualiza o saldo da conta 9400 na tabela cadcon com o total geral
db.Execute "UPDATE cadcon SET saldo = " & totalGeral & " WHERE conta = 9400"
' Mensagem de confirmação
MsgBox "O saldo da conta 9400 foi atualizado com o total geral: " & totalGeral
' Limpa objetos
Set rs = Nothing
Set db = Nothing
End Sub
so que esta dando erro
nessa LInha Set rs = db.OpenRecordset(sql) da o erro 3061 paramnetros insuficientes alguem pode ajudar?