SOMAR VALORES DE NEWINDEX
Amigos preciso da ajuda de voces mais uma vez, o seguinte, tenho um Listbox com nomes de bancos retirados de uma tabela, eu preciso fazer com que se o cara selecionar o banco 1, o banco 2 e o banco 3 , mostre em um campo a soma, e se desses tres bancos clicados(selecionados) o cara desistir por exemplo do banco 2, subtraia o valor do campo totalizado. Tentei usar, mas nao soma, caso alguem possa me auxiliar agradeco.
Na tabela esta assim:
Colunas
saldo | banco
------|----------------------
2,55 banco 1
-0,55 banco 2
50,00 banco 3
-100,00 banco 4
While Not rs.EOF
List1.AddItem rs("banco")
valorreal = List1.ItemData(List1.NewIndex) = rs("saldo")
rs.MoveNext
Wend
Na tabela esta assim:
Colunas
saldo | banco
------|----------------------
2,55 banco 1
-0,55 banco 2
50,00 banco 3
-100,00 banco 4
Private Sub Form_Load()
For I = 1 To 3
List1.AddItem I
Next
End Sub
[c]Private Sub List1_Click()
Label1.Caption = 0
For I = 0 To List1.ListCount - 1
If List1.Selected(I) = True Then Label1 = CCur(Label1) + CCur(List1.List(I))
Next
End Sub
[/c]
Cara, eu não recomendo você colocar o saldo no ItemData do List, pois o ItemData só aceita valores do tipo Long (inteiros), e o saldo é decimal (contem virgula), o que poderia fazer é criar um array (global no form) com os saldos, e no evento click vc somar:
Qualquer dúvida poste...flw
Option Explicit
Dim Saldos() As Double
Private Sub Form_Load()
rs.Open "select codigo, banco, saldo from bancos"
While Not rs.EOF
List1.AddItem rs("banco")
ReDim Preserve Saldos(List1.NewIndex) As Double 'Adiciona um item no Array
Saldos(List1.NewIndex) = rs("saldo")
List1.ItemData(List1.NewIndex) = rs("codigo")
rs.MoveNext
Wend
End Sub
Private Sub List1_Click()
Dim Total As Double, i As Long
For i = 0 To List1.ListCount - 1
If List1.Selected(i) Then Total = Total + Saldos(i)
Next i
lblSaldo = Format(Total, "Currency")
End Sub
Qualquer dúvida poste...flw
Matioli, valeu pela dica, mas o Clayton passou uma forma mais facil e bem funcional.
[/c]
[c]Private Sub Form_Load()
' AKI VC SUBISTITUI PELOS DADOS DO BANCO
For i = 1 To 3
List1.AddItem "Banco 001" & " >" & -100.29
List1.AddItem "Banco 002" & " >" & -50.29
List1.AddItem "Banco 003" & " >" & 9.29
Next i
End Sub
Private Sub List1_Click()
Label1.Caption = 0
For i = 0 To List1.ListCount - 1
If List1.Selected(i) = True Then
'MsgBox List1.List(i)
Label1.Caption = CCur(Label1) + CCur(Mid(List1.List(i), InStr(List1.List(i), ">") + 1, 99))
End If
Next i
End Sub
[/c]
Tópico encerrado , respostas não são mais permitidas