Q ESTA ERRADO ?
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
----------------------------------------------------------------------------------------------------------------------
Tente assim Amigo:
Dúvida sanada=tópico encerrado.
Private Sub ListView1_DblClick()
MsgBox ListView1.ListItems(ListView1.SelectedItem.Index).Text
End Sub
Dúvida sanada=tópico encerrado.
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..
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..
brigada pela dica pessoal
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 ?
[[[ ]]]
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 ?
[[[ ]]]
Por favor, se sua dúvida foi sanada encerre o tópico.
encerro o topico, so queria era saber como se faz aquilo...
[[[ ]]]
[[[ ]]]
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.
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.
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
[[[ ]]]
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
[[[ ]]]
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.
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.
so uma coisa .... no ListView1_ColumnClick coloco o q mais precisamente:
ListView1.ListItems(ListView1.SelectedItem.Index ????
brigada
[[[ ]]]
ListView1.ListItems(ListView1.SelectedItem.Index ????
brigada
[[[ ]]]
Tópico encerrado , respostas não são mais permitidas