Notifications
Clear all

Somar determinada coluna em ACCESS - SQL

9 Posts
3 Usuários
0 Reactions
2,626 Visualizações
(@wfranca)
Posts: 297
Honorable Member
Topic starter
 

Boa noite,

como posso somar a coluna valores do meu Banco a partir de um ID.

Exemplo:

tenho no banco
ID - -Material - Valores
10 - Casa1 - 300,00
10 -Casa2 - 100,00
20 -Casa3 - 150,00
20 -Casa4 - 200,00

Nesse caso preciso que o retorno da soma da coluna seja baseado pelo código e coluna valores. No exemplo acima ficaria assim:

ID: 10 = 400,00
ID: 20 = 350,00

Gostaria de adaptar esse exemplo a esse código abaixo:

 'Cria variável que armazena os comandos SQL
   Dim ComandoSQL As String
    Dim ID As String
    
    
    ID = Me.ID
    
    'Armazena na variável o comando que fará a consulta SQL no BD Access
    ComandoSQL = "select * from TB_valores where ID like  '" & ID & "' "
    
    'Chama a rotina que faz a conexão ao Banco de Dados
    Call Conecta
    
    'Atribui a variável global do tipo Recorset, os comandos SQL que devem ser executados
    Set consulta = banco.OpenRecordset(ComandoSQL)
    
    '****Abre o Recordset do BD para edição
    consulta.Edit
    
    'Tratamento de erro de acesso aos dados. Se houver erro, desvia o comando para o rótulo Sai
'    On Error GoTo sai
   
            consulta("Valores") = Valor1
           
            
            
            
              
              'Atualiza o Recordset do BD
        consulta.Update
            
            
             'Chama a rotina que libera as variáveis de objeto do BD
      Call Desconecta

 
Postado : 01/11/2017 6:15 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Welington,

Anexe seu arquivo exemplo, compactado com .ZIP, contendo, inclusive, uma demonstração do resultado.

 
Postado : 02/11/2017 1:07 pm
(@wfranca)
Posts: 297
Honorable Member
Topic starter
 

Wagner,

Quando eu buscar pelo ID, o meu textbox de soma me retorne a soma dos valores referente aos ID's dentro da minha tabela

segue anexo um modelo de teste.

 
Postado : 02/11/2017 2:15 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Welington,

Boa tarde!

Tive que fazer algumas modificações. Veja se é assim.

 
Postado : 02/11/2017 3:41 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Só mais um detalhe que esqueci: O caminho para o arquivo de Banco de Dados eu inseri como ActiveWorkbook.Path & "BD_teste.mdb". Isso significa que o arquivo Access deverá sempre ficar na mesma pasta que o arquivo excel de macro. Todavia, como seu arquivo é um arquivo do tipo modelo com macros (.xltm), para funcionar corretamente você deve sempre abrir o próprio modelo (com o botão direito do mouse em cima do nome do arquivo e clivando em Abril). Se abrir com um clicç duplo em cima do arquivo ou com ENTER, o Excel irá abrir uma planilha baseada no modelo e dará erro assim que inciar pois tentará achar o arquivo de banco de dados da unidade "C:" (no raiz) uma vez que é assim que o Excel abre seus arquivos.

Para resolver esse tipo de problema tem dois caminhos:
1 - Copiar o arquivo BD_teste.mdb para o raiz (C:)
2 - Mudar o comando de abertura do arquivo de banco de dados lá na procedure Concecta_BD do VBA de modo a refletir o caminho onde de fato o arquivo está.

 
Postado : 02/11/2017 4:11 pm
(@wfranca)
Posts: 297
Honorable Member
Topic starter
 

Wagner, realmente é o que eu preciso..

só que não queria mudar a forma de busca do meu banco.

seria algo como uma adaptação no meu código.

 
Postado : 02/11/2017 5:06 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Não entendi...
A forma de busca no banco de dados não muda nada. Acredito que a lógica que foi utilizada por você é que está equivocada. O importante não é o resultado?

 
Postado : 02/11/2017 5:59 pm
(@rilust)
Posts: 0
New Member
 

Prezado

veja esse link :http://www.planilhando.com.br/forum/viewtopic.php?f=21&t=26457 Nele tem um programinha feito em DELPHI para acesso a base de dados em acess

Como você não postou sua base de dados vou te dar a solução mais simples

select id , sum (valores) as total
from nome-da-sua-tabela
group by id
order by id

se vc quiser ordenar pelo valor
Order by sum (valores) desc ou asc

espero que ajude

 
Postado : 03/11/2017 10:46 am
(@wfranca)
Posts: 297
Honorable Member
Topic starter
 

Obrigado rilust, pelas dicas..

Wagner, tem razão, na verdade parei para analisar e consegui, seria apenas substituir o destino do meu banco.

Obrigado mais uma vez.

 
Postado : 03/11/2017 5:11 pm