MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Soma de coluna com criterios

    Compartilhe

    Augusto Pereira
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2
    Registrado : 01/02/2016

    [Resolvido]Soma de coluna com criterios

    Mensagem  Augusto Pereira em Ter 02 Fev 2016, 18:46

    Boa tarde!

    tenho uma tabela com produtos e quantidades, e preciso somar as quantidades dos produtos da forma indicada na coluna Soma correta.

    O código que consegui adaptar me dá a soma conforme coluna Soma. Para o produto A está correta, mas para os demais não, onde estou errando?

    Por favor, poderiam me ajudar.

    Obrigado.

    Prod Data Quo Soma Soma correta
    A 26-jan-16 1 1 1
    A 27-jan-16 2 3 3
    A 28-jan-16 3 6 6
    A 29-jan-16 4 10 10
    B 26-jan-16 5 15 5
    B 27-jan-16 6 21 11
    B 28-jan-16 7 28 18
    B 29-jan-16 8 36 26
    C 26-jan-16 1 37 1
    C 27-jan-16 2 39 3
    C 28-jan-16 3 42 6
    C 29-jan-16 4 46 10
    D 26-jan-16 5 51 5
    D 27-jan-16 6 57 11
    D 28-jan-16 7 64 18
    D 29-jan-16 8 72 26



    Segue o código:

    Private Sub Comando12_Click()
    Dim dbs As DAO.Database
    Dim rst As DAO.Recordset
    Dim ProAtual As String
    Dim QuaAtual As Double

    Set dbs = CurrentDb '' Indico banco de dados atual
    Set valores = dbs.OpenRecordset("Teste") '' Abro a tabela de contas
    Set ave = dbs.OpenRecordset("Med") '' Abro a tabela de contas
    CurrentDb.Execute "DELETE * FROM Med"

    ProAtual = valores.[Pro]
    QuaAtual = 0

    With ave
         
        Do While Not valores.EOF
       
        ProAtual = valores.[Pro]
                     
           If (ProAtual = valores.[Pro]) Then
           
            ave.AddNew
           !Prod = valores.[Pro]
           !Data = valores.[Data]
           !Quo = valores.[Quo]
            QuaAtual = valores.[Quo] + QuaAtual
           !Soma = QuaAtual
           
            Else
           
            QuaAtual = 0
                             
           End If
           
           valores.MoveNext
             
       .Update
     
    Loop

    End With
    dbs.Close
    Set dbs = Nothing
    End Sub

    Augusto Pereira
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2
    Registrado : 01/02/2016

    Re: [Resolvido]Soma de coluna com criterios

    Mensagem  Augusto Pereira em Ter 02 Fev 2016, 23:04

    Consegui adaptar o código e resolver, era uma questão de logica.

    Segue:

    Private Sub Comando12_Click()
    Dim dbs As DAO.Database
    Dim rst As DAO.Recordset
    Dim QuaAtual As String
    Dim Media As Double



    Set dbs = CurrentDb '' Indico banco de dados atual
    Set valores = dbs.OpenRecordset("Teste") '' Abro a tabela de contas
    Set ave = dbs.OpenRecordset("Med") '' Abro a tabela de contas
    CurrentDb.Execute "DELETE * FROM Med"



    With ave

    Do While Not valores.EOF

    ave.AddNew

    !Prod = valores.[Pro]
    !Data = valores.[Data]
    !Quo = valores.[Quo]

    If (QuaAtual = valores.[Pro]) Then

    Media = valores.[Quo] + Media
    !Soma = Media

    Else

    Media = valores.[Quo]
    !Soma = Media
    QuaAtual = valores.[Pro]

    End If

    valores.MoveNext

    .Update

    Loop

    End With
    dbs.Close
    Set dbs = Nothing
    End Sub


    Obrigado.

      Data/hora atual: Dom 11 Dez 2016, 00:15