Q ESTA ERRADO ?

USUARIO.EXCLUIDOS 26/07/2005 09:45:11
#96008

Oi galera !!!

tenho o seguinte codigo, e o objectivo disto era q o utilizador ao escolher a linha q quer eliminar, entao eliminasse essa linha da listview e tb da bd...

mas, o q acontece eh q eu quero q ele va buscar o id respectivo q escolheu, e n sempre o primeiro.

eu ja tentei com : ID_Cliente = " & ListView1.ListItems(1) &, mas assim so vai buscar o primeiro :(

por isso tentei colocar o i e percorrer um for, mas mesmo assim n da...

como posso resolver isso ?


[[[ ]]]




----------------------------------------------------------------------------------------------------------------------

Dim total As Integer
If ListView1.ListItems.Count <> 0 Then
For i = 1 To ListView1.ListItems.Count
If ListView1.SelectedItem.Checked Then
x = MsgBox("Tem a certeza que deseja eliminar este produto ? ", vbYesNo)
If x = vbYes Then
Dim rs As New Recordset
rs.Open "DELETE FROM Produtos WHERE ID_Cliente = " & ListView1.ListItems(i) & " AND Nome = '" & ListView1.SelectedItem.SubItems(1) & "' AND Estado = '" & ListView1.SelectedItem.SubItems(2) & "' AND Data = '" & ListView1.SelectedItem.SubItems(3) & "' AND Observ = '" & ListView1.SelectedItem.SubItems(4) & "'", conexao, adOpenDynamic, adLockOptimistic
rs.Open "SELECT Saldo FROM Conta WHERE ID_Cliente = " & ListView1.ListItems(i), conexao, adOpenDynamic, adLockOptimistic
total = rs.Fields("Saldo")
rs.Close
If ListView1.SelectedItem.SubItems(4) = "VENDIDO" Then
total = total - 40
txt_saldo.Text = total
rs.Open "UPDATE Conta SET Saldo = '" & saldo.txt_saldo.Text & "' WHERE ID_Cliente = " & ListView1.ListItems(i), conexao, adOpenDynamic, adLockOptimistic
End If
If ListView1.SelectedItem.SubItems(4) = "NÃO VENDIDO" Then
total = total + 40
txt_saldo.Text = total
rs.Open "UPDATE Conta SET Saldo = '" & saldo.txt_saldo.Text & "' WHERE ID_Cliente = " & ListView1.ListItems(i), conexao, adOpenDynamic, adLockOptimistic
End If
ListView1.ListItems.Remove ListView1.SelectedItem.Index
Else
Exit Sub
End If
Else
MsgBox "Seleccione primeiro !!!", vbInformation
End If
Next I
End If


----------------------------------------------------------------------------------------------------------------------
LREZANI 26/07/2005 10:25:18
#96014
Resposta escolhida
Tente assim Amigo:
   
Private Sub ListView1_DblClick()
MsgBox ListView1.ListItems(ListView1.SelectedItem.Index).Text
End Sub

Dúvida sanada=tópico encerrado.
LEANDRO.LUIZ 26/07/2005 11:22:40
#96025
Resposta escolhida
Assim ele pega a primeira coluna do item selecionado.
ID_Cliente = " & ListView1.SelectedItem.Text

Assim ele pega a Segunda coluna do item selecionado.
ID_Cliente = " & ListView1.SelectedItem.ListSubItems(1).Text

e assim vai...Espero que tenha ajudado..
USUARIO.EXCLUIDOS 26/07/2005 16:33:50
#96091
brigada pela dica pessoal
USUARIO.EXCLUIDOS 26/07/2005 16:45:14
#96092
so mais uma coisa...

eu tenho a seguinte ideia, o usuario ao checar a linha q quer eliminar, entao pergunta se pretende eliminar,

mas se n checar nenhuma linha da a seguinte mensagem de erro:

MsgBox "Seleccione primeiro a linha !!!", vbInformation

agora eu queria q em vez de ser preciso utilizar checkboxes na listview, ele utilize antes a seleção da linha.

como ficaria entao ?

[[[ ]]]
LEANDRO.LUIZ 26/07/2005 16:46:07
#96093
Por favor, se sua dúvida foi sanada encerre o tópico.
USUARIO.EXCLUIDOS 26/07/2005 16:53:28
#96094
encerro o topico, so queria era saber como se faz aquilo...

[[[ ]]]
LEANDRO.LUIZ 26/07/2005 16:55:09
#96095
RubGomes, me desculpe, é que quando acessei a msg ainda não tinha a outra sua, e vc postou antes de mim.
Eu achei que já tinha sanado sua dúvida.....me desculpe mesmo.
é simples.;

Dim i As Integer
Dim Selecionou As Boolean
Selecionou = False
For i = 1 To ListView1.ListItems.Count

If ListView1.ListItems(i).Selected = True Then
Selecionou = True
End If
Next i
If Selecionou = False Then
MsgBox "Selecione uma linha antes"
Exit Sub
End If

Espero ter ajudado.

USUARIO.EXCLUIDOS 26/07/2005 17:12:44
#96099
q eh isso cara...

n tem de pedir desculpas

so uma coisa, como posso colocar o seu codigo no meu,

--------------------------------------------------------------------------------------------------------------------

Dim total As Integer
If ListView1.ListItems.Count <> 0 Then
If ListView1.SelectedItem.Checked Then
x = MsgBox("Tem a certeza que deseja eliminar o produto ? ", vbYesNo)
If x = vbYes Then
Dim rs As New Recordset
rs.Open "DELETE FROM Produtos WHERE ID_Cliente = " & ListView1.ListItems(ListView1.SelectedItem.Index).Text & " AND Nome = '" & ListView1.SelectedItem.SubItems(1) & "' AND Estado = '" & ListView1.SelectedItem.SubItems(2) & "' AND Data = '" & ListView1.SelectedItem.SubItems(3) & "' AND Observ = '" & ListView1.SelectedItem.SubItems(4) & "'", conexao, adOpenDynamic, adLockOptimistic
rs.Open "SELECT Saldo FROM Conta WHERE ID_Cliente = " & ListView1.ListItems(ListView1.SelectedItem.Index).Text, conexao, adOpenDynamic, adLockOptimistic
total = rs.Fields("Saldo")
rs.Close
If ListView1.SelectedItem.SubItems(4) = "VENDIDO" Then
total = total - 40
txt_saldo.Text = total
rs.Open "UPDATE Conta SET Saldo = '" & txt_saldo.Text & "' WHERE ID_Cliente = " & ListView1.ListItems(ListView1.SelectedItem.Index).Text, conexao, adOpenDynamic, adLockOptimistic
End If
If ListView1.SelectedItem.SubItems(4) = "NÃO VENDIDO" Then
total = total + 40
txt_saldo.Text = total
rs.Open "UPDATE Conta SET Saldo = '" & txt_saldo.Text & "' WHERE ID_Cliente = " & ListView1.ListItems(ListView1.SelectedItem.Index).Text, conexao, adOpenDynamic, adLockOptimistic
End If
ListView1.ListItems.Remove ListView1.SelectedItem.Index
Else
Exit Sub
End If
Else
MsgBox "Seleccione a linha primeiro !!!", vbInformation
End If
End If

----------------------------------------------------------------------------------------------------------------------

eh q eu n queria usar nenhum for...

brigada

[[[ ]]]

LEANDRO.LUIZ 26/07/2005 17:26:07
#96102
Não sei se dah certo, mas tente colocar assim.:

Crie uma var para armazenar o Codigo do Produto a ser excluído

Dim Cod as Integer
Ai vc faz assim.:
no evento ListView1_ColumnClick você joga o valor do item seleciionado p/ a variável.
Depois vc verifica.:
if cint("0" & Cod) = 0 then
msgbox "Selecione uma linha antes"
end if

Tente isso p/ ver se dar certo.
USUARIO.EXCLUIDOS 26/07/2005 17:31:03
#96104
so uma coisa .... no ListView1_ColumnClick coloco o q mais precisamente:

ListView1.ListItems(ListView1.SelectedItem.Index ????


brigada

[[[ ]]]
Página 1 de 2 [16 registro(s)]
Tópico encerrado , respostas não são mais permitidas