SOMAR VALORES DE NEWINDEX

BYDUMORAES 02/08/2007 17:37:31
#229180
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.
 

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
USUARIO.EXCLUIDOS 03/08/2007 11:06:54
#229313
Resposta escolhida
  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]
USUARIO.EXCLUIDOS 03/08/2007 12:58:08
#229342
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:

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
BYDUMORAES 03/08/2007 16:57:51
#229401
Matioli, valeu pela dica, mas o Clayton passou uma forma mais facil e bem funcional.

[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