'Um código bem básico para uma estrutura de três níveis escrito em 'VB para o Access 2010 Option Compare Database Sub centro_custo() ' funciona para uma estrutura de contas em 3 niveis Dim rs1 As Recordset Dim rs2 As Recordset Dim soma_n1, soma_n2, soma_n3 As Double Dim tamanho_conta As Integer Dim strSQL As String ' lista todas as contas cadastradas em centro_custo Set rs1 = CurrentDb.OpenRecordset("SELECT id_centro_custo, descricao, tipo_conta FROM centro_custo ORDER BY id_centro_custo DESC;") Do While Not rs1.EOF ' contas nivel 3 ' todas contas analiticas, nessa estrutura as contas tem o nivel 3 If (rs1("tipo_conta") = "A") Then ' processa o nivel 3 na query em strSQL strSQL = "SELECT cc.id_centro_custo, cc.descricao, sum(m.valor_movimento) AS total_conta FROM centro_custo cc INNER JOIN movimento m ON m.id_centro_custo LIKE cc.id_centro_custo WHERE cc.id_centro_custo = '" & rs1("id_centro_custo") & "' GROUP BY cc.id_centro_custo, cc.descricao;" Set rs2 = CurrentDb.OpenRecordset(strSQL) If Not rs2.EOF Then soma_n3 = rs2("total_conta") Else soma_n3 = 0 End If soma_n2 = soma_n2 + soma_n3 Debug.Print rs1("id_centro_custo") & " - " & rs1("descricao") & " - " & rs1("tipo_conta") & " - " & soma_n3 Else tamanho_conta = Len(rs1("id_centro_custo")) ' contas nivel 2 If tamanho_conta = 3 Then Debug.Print rs1("id_centro_custo") & " - " & rs1("descricao") & " - " & rs1("tipo_conta") & " - " & soma_n2 soma_n1 = soma_n1 + soma_n2 soma_n2 = 0 Else ' contas nivel 1 If tamanho_conta = 1 Then Debug.Print rs1("id_centro_custo") & " - " & rs1("descricao") & " - " & rs1("tipo_conta") & " - " & soma_n1 soma_n1 = 0 End If End If End If ' avanca proximo registro rs1.MoveNext Loop End Sub ' Informo ainda que os níveis podem ser configurados via matrizes ' e código desenvolvido acima é procedural ' Recomendo definir uma mascara do plano de contasResultado do Código em VBA Acima Descrito Mais uma vez espero ter ajudado! APdSJC!
DBA, MySql, Oracle, Postgres, SQL Server, DB2, BI, TI, Business Intelligence, Data Science, Machine Learning, IoT, Arduino
quinta-feira, 26 de dezembro de 2013
Código, Algoritmo de um Plano de Contas escrito em VB
Complementando um artigo descrito em http://emersonhermann.blogspot.com.br/2012/09/consulta-sql-de-plano-de-contas-query.html
Consulta SQL de Plano de Contas - Query Contabil - Query para Centro de Custo, apenas exponho um simples código para elucidar como deveria ser feito, isto é, como seria implementado um algoritmo para totalizar um plano de contas em uma linguagem de programação, a exemplo aqui do VBA, em casos que não é possível usar uma query ou um SGBD sem um suporte mais abrangente ao SQL a exemplo do ACCESS 2010.
Assinar:
Postagens (Atom)