MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

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


    [Resolvido]Soma de elementos de um Array

    avatar
    werlycorvo
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 13/07/2011

    [Resolvido]Soma de elementos de um Array Empty [Resolvido]Soma de elementos de um Array

    Mensagem  werlycorvo em 23/7/2019, 14:21

    Saudações a todos os Mestres e Colegas do Forum.

    Ontem me deparei com uma situação um pouco estranha.
    Um cliente me pediu para auditar um banco de dados inativo de + ou - uns 15 anos, porém
    o banco é em .DBF com tabelas vinculadas. Até aqui tudo bem, mas quando acessei os códigos dos formulários
    em uma versão antiga do Access notei que o programador usou uma quantidade enorme de Arrays para usar como Totais Periódicos.

    Exemplo:
    Dim Totais(20) as Double

    Totais(0) = 15000,00
    Totais(1) = 23000,00
    Totais(2) = 17000,00
    Totais(3) = 18000,00
    e sucessivamente.

    Para auditar o banco tenho que somar os elementos destes arrays. Consigo faze-lo usando o seguinte código:

    Dim dblSomaArray as Double

    dblSomaArray = 0
    For I = 0 To 20
    dblSomaArray = dblSomaArray + Totais(I)
    Next

    Eis a questão, deve ter uns 20 anos que não trabalho com Arrays estou muito enferrujado.

    Alguém saberia uma forma mais simples de fazer estas somatórias?

    Desde Já Agradeço a atenção de todos.

    Marcelo David
    Marcelo David
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2905
    Registrado : 21/04/2011

    [Resolvido]Soma de elementos de um Array Empty Re: [Resolvido]Soma de elementos de um Array

    Mensagem  Marcelo David em 23/7/2019, 16:41

    Boa tarde, essa já é a maneira mais simples de se fazer isso. Para facilitar, poderia usar uma função genérica que some qualquer Array.
    Para isso, em um módulo:
    Código:
    'Autor: Marcelo R. David
    'Data: 23/07/2019
    'Para solução do tópico MaximoAccess: http://www.maximoaccess.com/t36349-soma-de-elementos-de-um-array
    Public Function fncSomaArrays(varArray) As Double
       Dim i
       Dim ic As Integer
       Dim i2 As Double
        
       For Each i In varArray
             i2 = i2 + varArray(ic)
             ic = ic + 1
       Next

       fncSomaArrays = i2

    End Function

    Para calcular em uma MsgBox por exemplo:

    Código:
    MsgBox fncSomaArrays(Totais)



    .................................................................................
    Marcelo David
    www.mrdsystem.com.br (em construção)
    avatar
    werlycorvo
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 13/07/2011

    [Resolvido]Soma de elementos de um Array Empty Soma de elementos de um Array

    Mensagem  werlycorvo em 23/7/2019, 22:08

    Boa Tarde a Todos.

    Marcelo esta função realmente não quebra só um galho, quebra uma mata inteira.

    Obrigado pela atenção e fiquem bem.

    Sendo assim dou o tópico por Resolvido. Porem caso tenham outras soluções reabram o tópico


    Marcelo David
    Marcelo David
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2905
    Registrado : 21/04/2011

    [Resolvido]Soma de elementos de um Array Empty Re: [Resolvido]Soma de elementos de um Array

    Mensagem  Marcelo David em 23/7/2019, 23:52

    Maravilha. O fórum agradece o retorno.


    .................................................................................
    Marcelo David
    www.mrdsystem.com.br (em construção)

    Conteúdo patrocinado

    [Resolvido]Soma de elementos de um Array Empty Re: [Resolvido]Soma de elementos de um Array

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 16/12/2019, 00:22