Ir ao conteúdo
  • Cadastre-se

Access Soma com critérios ListView VBA access


Posts recomendados

Fala pessoal, sei q to postando coisa atras de coisa kkkk, mas to aprendendo muito com isso tudo

 

To montando meu fluxo de caixa.

ele ja esta gerando a listview puxando da tabela access de acordo com o intervalo de datas a cima.

 

agora preciso fazer as somas para o controle de caixa kkk.

 

tipo a formula somases do excel

como fazer isso nos itens filtrados pela list view?

 

Os calculos seriam da seguinte forma

somando a coluna Valor

iria separar pelo cod do plano de venda

1 = dinheiro

2 = debito

e por ai vai

 

e tambem dividir pela natureza

D = despeza

R = Receita

B = Banco

 

print da tela do fluxo de caixa

Spoiler

image.png.95e6f58e88d4d9fc7a9ac471bec3bdb6.png

 

codigos da ListView

Spoiler

Sub carregar_fluxo()
Dim data As Date
Dim inicio As Date
Dim fim As Date

inicio = Txt_Data1
fim = Txt_Data2

ConectDB
    
    rs.Open "Select * from tb_fluxo where Data Between'" & inicio & "' AND '" & fim & "'", db, 3, 3
    
    On Error Resume Next
    
    Me.ListView1.ListItems.Clear
    
    While Not rs.EOF
    
        
        Set List = Me.ListView1.ListItems.Add(Text:=rs!data)
            List.SubItems(1) = rs!CodPlanoVenda
            List.SubItems(2) = rs!PlanoVenda
            List.SubItems(3) = rs!CodPlanoConta
            List.SubItems(4) = rs!Descricao
            List.SubItems(5) = Format(rs!Valor.Value, "currency")
            List.SubItems(6) = rs!Natureza
         
         
         
            
            rs.MoveNext
    Wend
    
FechaDb




End Sub

 

 

Link para o comentário
Compartilhar em outros sites

@DavidsonGomes1998 se quer inserir os dados juntamente com o carregamento do ListView, 

 

Eu faria assim, usando o select case: 

 

Declarando as variaveis: 

'DESPESAS
Dim SomaDh_D    As Double
Dim SomaDe_D    As Double
Dim SomaCr_D    As Double
Dim SomaCHA_D   As Double
Dim SomaCHP_D   As Double
Dim SomaBa_D    As Double

 

Dentro do while:

 


       'DESPESAS
    Select Case rs!CodPlanoVenda & rs!Natureza
 
            Case Is = "dinheiro" & "D"
            SomaDh_D = SomaDh_D + rs!Valor.Value
            
            Case Is = "DINHEIRO" & "D"
            SomaDh_D = SomaDh_D + rs!Valor.Value
            
            Case Is = "CARTÃO DÉBIT.." & "D"
            SomaDe_D = SomaDe_D + rs!Valor.Value
            
            Case Is = "BANCO" & "D"
            SomaBa_D = SomaBa_D + rs!Valor.Value
            '    Continue... abaixo...
            ' SomaCr_D
            ' SomaCHP_D
            ' SomaCHA_D
            
    End Select

Depois associe cada variavel aos respectivos campos (textbox (s)) 

As Receitas deixo por sua conta, é so sequir a lógica 😆

 

Link para o comentário
Compartilhar em outros sites

1 hora atrás, Basole disse:

@DavidsonGomes1998 se quer inserir os dados juntamente com o carregamento do ListView, 

 

Eu faria assim, usando o select case: 

 

Declarando as variaveis: 


'DESPESAS
Dim SomaDh_D    As Double
Dim SomaDe_D    As Double
Dim SomaCr_D    As Double
Dim SomaCHA_D   As Double
Dim SomaCHP_D   As Double
Dim SomaBa_D    As Double

 

Dentro do while:

 



       'DESPESAS
    Select Case rs!CodPlanoVenda & rs!Natureza
 
            Case Is = "dinheiro" & "D"
            SomaDh_D = SomaDh_D + rs!Valor.Value
            
            Case Is = "DINHEIRO" & "D"
            SomaDh_D = SomaDh_D + rs!Valor.Value
            
            Case Is = "CARTÃO DÉBIT.." & "D"
            SomaDe_D = SomaDe_D + rs!Valor.Value
            
            Case Is = "BANCO" & "D"
            SomaBa_D = SomaBa_D + rs!Valor.Value
            '    Continue... abaixo...
            ' SomaCr_D
            ' SomaCHP_D
            ' SomaCHA_D
            
    End Select

Depois associe cada variavel aos respectivos campos (textbox (s)) 

As Receitas deixo por sua conta, é so sequir a lógica 😆

 

Então deixa eu ser mais especifico.

 

eu tenho a Label Saldo caixa

 

nela é pra ir a soma de toda a tabela de fluxo do access

mas so os itens que tiverem o "1" na coluna CodPlanoVenda e o "D" na Natureza.

como faz essa soma?

 

tentei adaptar o Select Case mas nao ta me dando o valor correto

ta colocando apenas o valor da primeira linha da tabela

 

 

aqui como fiz o codigo

Dim Soma_Dh As Double

ConectDB

    rs.Open "Select * From tb_fluxo", db, 3, 3
        Select Case rs!CodPlanoVenda & rs!Natureza
            Case Is = "1" & "D"
            Soma_Dh = Soma_Dh + rs!valor.Value
        End Select
FechaDb

Lbl_Saldo_DinheiroCaixa = Soma_Dh

 

Link para o comentário
Compartilhar em outros sites

@DavidsonGomes1998 a Dsoma funciona no access ou com a biblioteca.

 

No caso do seu ultimo exemplo, o filtro pode ser feito na própria consulta, sem a necessidade de usar o select case:

Dim Soma_Dh As Double

ConectDB
   
        On Error GoTo trat_Erro
        
        rs.Open "SELECT * FROM [tb_fluxo] WHERE [CodPlanoVenda]=1 AND [Natureza]='D'", db, 3, 3
                
                While Not rs.EOF
                       Soma_Dh = Soma_Dh + rs!valor.Value
                    rs.MoveNext
                Wend
              
        Lbl_Saldo_DinheiroCaixa = Soma_Dh
        
trat_Erro:
        
        FechaDb
        If Err.Number <> 0 Then MsgBox Err.Number & " " & Err.Description
        On Error GoTo 0

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!