SOMAR ITENS DO BANCO DE DADOS
Meus amigos, para somar um valor total de cada item num banco de dados eu uso uma maneira não muito didática
(eu mesmo desenvolvi), essa maneira consiste em trazer os itens para a listview e somar pela coluna:
[ô]Total AlumÃnio
LstProdutos.ListItems.Clear
ConnectDB
rs.Open [Ô]Select * from Entrada_Produtos where Descricao like [ô][Ô] & Label16.Caption & [Ô]%[ô] [Ô], db, 3, 3
Do Until (rs.EOF)
Set item = LstProdutos.ListItems.Add(, , rs!Codigo)
item.SubItems(1) = [Ô][Ô] & rs!Descricao
item.SubItems(2) = [Ô][Ô] & VBA.Format(rs!Peso_liquido, [Ô]#,##0.00[Ô])
item.SubItems(3) = [Ô][Ô] & VBA.Format(rs!valor, [Ô]#,##0.00[Ô])
item.SubItems(4) = [Ô][Ô] & VBA.Format(rs!Valor_Total, [Ô]#,##0.00[Ô])
item.SubItems(5) = [Ô][Ô] & rs!Data
item.SubItems(6) = [Ô][Ô] & rs!Observacoes
rs.MoveNext
Loop
Set rs = Nothing
db.Close: Set db = Nothing
Dim valorh As Double
Dim valor2h As Currency
For i = 1 To Me.LstProdutos.ListItems.Count
valorh = valorh + CDbl(Me.LstProdutos.ListItems(i).ListSubItems(2))
Next i
For j = 1 To Me.LstProdutos.ListItems.Count
valor2h = valor2h + CDbl(Me.LstProdutos.ListItems(j).ListSubItems(4))
Next j
lblTAluminio.Caption = VBA.Format(valor2h, [Ô]#0.00[Ô])
lblAluminio.Caption = VBA.Format(valorh, [Ô]#0.00[Ô])
[ô]Total Cobre
LstProdutos.ListItems.Clear
ConnectDB
rs.Open [Ô]Select * from Entrada_Produtos where Descricao like [ô][Ô] & Label17.Caption & [Ô]%[ô] [Ô], db, 3, 3
Do Until (rs.EOF)
Set item = LstProdutos.ListItems.Add(, , rs!Codigo)
item.SubItems(1) = [Ô][Ô] & rs!Descricao
item.SubItems(2) = [Ô][Ô] & VBA.Format(rs!Peso_liquido, [Ô]#,##0.00[Ô])
item.SubItems(3) = [Ô][Ô] & VBA.Format(rs!valor, [Ô]#,##0.00[Ô])
item.SubItems(4) = [Ô][Ô] & VBA.Format(rs!Valor_Total, [Ô]#,##0.00[Ô])
item.SubItems(5) = [Ô][Ô] & rs!Data
item.SubItems(6) = [Ô][Ô] & rs!Observacoes
rs.MoveNext
Loop
Set rs = Nothing
db.Close: Set db = Nothing
Dim valori As Double
Dim valor2i As Currency
For i = 1 To Me.LstProdutos.ListItems.Count
valori = valori + CDbl(Me.LstProdutos.ListItems(i).ListSubItems(2))
Next i
For j = 1 To Me.LstProdutos.ListItems.Count
valor2i = valor2i + CDbl(Me.LstProdutos.ListItems(j).ListSubItems(4))
Next j
lblTCobre.Caption = VBA.Format(valor2i, [Ô]#0.00[Ô])
lblCobre.Caption = VBA.Format(valori, [Ô]#0.00[Ô])
Dessa forma se meu banco de dados tiver 200 itens eu terei que carregar e limpar a listvier 200 vezes, então,
qual o jeito mais simples de somar os valores de determinado item do banco de dados?
Desde já agradeço a quem possa ajudar
(eu mesmo desenvolvi), essa maneira consiste em trazer os itens para a listview e somar pela coluna:
[ô]Total AlumÃnio
LstProdutos.ListItems.Clear
ConnectDB
rs.Open [Ô]Select * from Entrada_Produtos where Descricao like [ô][Ô] & Label16.Caption & [Ô]%[ô] [Ô], db, 3, 3
Do Until (rs.EOF)
Set item = LstProdutos.ListItems.Add(, , rs!Codigo)
item.SubItems(1) = [Ô][Ô] & rs!Descricao
item.SubItems(2) = [Ô][Ô] & VBA.Format(rs!Peso_liquido, [Ô]#,##0.00[Ô])
item.SubItems(3) = [Ô][Ô] & VBA.Format(rs!valor, [Ô]#,##0.00[Ô])
item.SubItems(4) = [Ô][Ô] & VBA.Format(rs!Valor_Total, [Ô]#,##0.00[Ô])
item.SubItems(5) = [Ô][Ô] & rs!Data
item.SubItems(6) = [Ô][Ô] & rs!Observacoes
rs.MoveNext
Loop
Set rs = Nothing
db.Close: Set db = Nothing
Dim valorh As Double
Dim valor2h As Currency
For i = 1 To Me.LstProdutos.ListItems.Count
valorh = valorh + CDbl(Me.LstProdutos.ListItems(i).ListSubItems(2))
Next i
For j = 1 To Me.LstProdutos.ListItems.Count
valor2h = valor2h + CDbl(Me.LstProdutos.ListItems(j).ListSubItems(4))
Next j
lblTAluminio.Caption = VBA.Format(valor2h, [Ô]#0.00[Ô])
lblAluminio.Caption = VBA.Format(valorh, [Ô]#0.00[Ô])
[ô]Total Cobre
LstProdutos.ListItems.Clear
ConnectDB
rs.Open [Ô]Select * from Entrada_Produtos where Descricao like [ô][Ô] & Label17.Caption & [Ô]%[ô] [Ô], db, 3, 3
Do Until (rs.EOF)
Set item = LstProdutos.ListItems.Add(, , rs!Codigo)
item.SubItems(1) = [Ô][Ô] & rs!Descricao
item.SubItems(2) = [Ô][Ô] & VBA.Format(rs!Peso_liquido, [Ô]#,##0.00[Ô])
item.SubItems(3) = [Ô][Ô] & VBA.Format(rs!valor, [Ô]#,##0.00[Ô])
item.SubItems(4) = [Ô][Ô] & VBA.Format(rs!Valor_Total, [Ô]#,##0.00[Ô])
item.SubItems(5) = [Ô][Ô] & rs!Data
item.SubItems(6) = [Ô][Ô] & rs!Observacoes
rs.MoveNext
Loop
Set rs = Nothing
db.Close: Set db = Nothing
Dim valori As Double
Dim valor2i As Currency
For i = 1 To Me.LstProdutos.ListItems.Count
valori = valori + CDbl(Me.LstProdutos.ListItems(i).ListSubItems(2))
Next i
For j = 1 To Me.LstProdutos.ListItems.Count
valor2i = valor2i + CDbl(Me.LstProdutos.ListItems(j).ListSubItems(4))
Next j
lblTCobre.Caption = VBA.Format(valor2i, [Ô]#0.00[Ô])
lblCobre.Caption = VBA.Format(valori, [Ô]#0.00[Ô])
Dessa forma se meu banco de dados tiver 200 itens eu terei que carregar e limpar a listvier 200 vezes, então,
qual o jeito mais simples de somar os valores de determinado item do banco de dados?
Desde já agradeço a quem possa ajudar
Tente dessa maneira, porém acredito que seja interessante pesquisar um pouco mais sobre QUERY de consulta.
OU
Creio que a primeira se encaixa melhor no que esta querendo.
PS. Não realizei testes, pois estava muito tarde
SELECT
Codigo, Descricao,
SUM(Peso_liquido) AS Peso_liquido,
SUM(Valor) AS Valor,
SUM(Valor_Total) AS Valor_Total
FROM Entrada_Produtos
WHERE Descricao like [ô][Ô] & Label16.Caption & [Ô]%[ô][Ô]
GROUP BY Codigo, Descricao
OU
SELECT
Codigo, Descricao,
SUM(Peso_liquido) AS Peso_liquido,
Valor,
Valor_Total
FROM Entrada_Produtos
WHERE Descricao like [ô][Ô] & Label16.Caption & [Ô]%[ô][Ô]
GROUP BY Codigo, Descricao, Valor, Valor_Total
Creio que a primeira se encaixa melhor no que esta querendo.
PS. Não realizei testes, pois estava muito tarde
Citação::
Tente dessa maneira, porém acredito que seja interessante pesquisar um pouco mais sobre QUERY de consulta.SELECT
Codigo, Descricao,
SUM(Peso_liquido) AS Peso_liquido,
SUM(Valor) AS Valor,
SUM(Valor_Total) AS Valor_Total
FROM Entrada_Produtos
WHERE Descricao like [ô][Ô] & Label16.Caption & [Ô]%[ô][Ô]
GROUP BY Codigo, Descricao
OU
SELECT
Codigo, Descricao,
SUM(Peso_liquido) AS Peso_liquido,
Valor,
Valor_Total
FROM Entrada_Produtos
WHERE Descricao like [ô][Ô] & Label16.Caption & [Ô]%[ô][Ô]
GROUP BY Codigo, Descricao, Valor, Valor_Total
Creio que a primeira se encaixa melhor no que esta querendo.
PS. Não realizei testes, pois estava muito tarde
Filman, agradeço muito sua ajuda, porém perdoe a minha ignorância mas, essa função [Ô]SELECT[Ô] vai entrar aonde?
se copiar e colar esse codigo dá erro pois o [Ô]SELECT[Ô] sozinho não é um comando válido no VB6.
Bom eu te passei a estrutura SQL você tem que enquadrar onde você enquadra as outras tipo
Essa você troca
rs.Open [Ô]Select * from Entrada_Produtos where Descricao like [ô][Ô] & Label16.Caption & [Ô]%[ô] [Ô], db, 3, 3
por essa
rs.Open [Ô]SELECT [Ô] & _
[Ô] Codigo, Descricao, [Ô] & _
[Ô] SUM(Peso_liquido) AS Peso_liquido, [Ô] & _
[Ô] SUM(Valor) AS Valor, [Ô] & _
[Ô] SUM(Valor_Total) AS Valor_Total [Ô] & _
[Ô] FROM Entrada_Produtos [Ô] & _
[Ô] WHERE Descricao like [ô][Ô] & Label16.Caption & [Ô]%[ô][Ô] & _
[Ô] GROUP BY Codigo[Ô], Descricao, db, 3, 3
Tente ai
Essa você troca
rs.Open [Ô]Select * from Entrada_Produtos where Descricao like [ô][Ô] & Label16.Caption & [Ô]%[ô] [Ô], db, 3, 3
por essa
rs.Open [Ô]SELECT [Ô] & _
[Ô] Codigo, Descricao, [Ô] & _
[Ô] SUM(Peso_liquido) AS Peso_liquido, [Ô] & _
[Ô] SUM(Valor) AS Valor, [Ô] & _
[Ô] SUM(Valor_Total) AS Valor_Total [Ô] & _
[Ô] FROM Entrada_Produtos [Ô] & _
[Ô] WHERE Descricao like [ô][Ô] & Label16.Caption & [Ô]%[ô][Ô] & _
[Ô] GROUP BY Codigo[Ô], Descricao, db, 3, 3
Tente ai
Tópico encerrado , respostas não são mais permitidas