¿Cómo encontrar un item en un listview?
Tengo dos listview con dos botones, uno para asignar y otro para desasignar.
Cuando selección desasignar, tiene dos opciones, el recorre el lvw para encontrar el seleccionado en lvw1, cuando lo encuentra realiza ciertas acciones, lo que no se, es cual es el código para indicarle si no lo encuentra. Aquí envío el código como lo tengo diseñado hasta el momento:
Private Sub Cmddesasignar_Click()
Dim adbgrabar As ADODB.Recordset
Dim AdbInfo As ADODB.Recordset
Dim itmx1 As ListItem
Dim Retval1 As ValueConstants
Dim n As Integer
Dim Itmx As ListItem
If Lvwmateriaprima1.ListItems.Count > 0 And Not Lvwmateriaprima1.SelectedItem Is Nothing Then
Cantext.Visible = True
Cantext.Enabled = True
n = Lvwmateriaprima.ListItems.Count - 1
If Lvwmateriaprima.ListItems.Count > 1 Then
For Each itmx1 In Lvwmateriaprima.ListItems
If itmx1.SubItems(2) = Lvwmateriaprima1.SelectedItem.SubItems(2) Then
Cantext.Text = Lvwmateriaprima1.SelectedItem.SubItems(4)
Asigtext.Text = Lvwmateriaprima.SelectedItem.SubItems(4)
Lvwmateriaprima.ListItems(Lvwmateriaprima.ListItems.Count - n).Selected = True
acumulab
Lvwmateriaprima.Enabled = True
Lvwmateriaprima.SelectedItem.SubItems(4) = Asigtext.Text
Lvwmateriaprima1.ListItems.Remove (Lvwmateriaprima1.SelectedItem.Index)
Cantext.Text = ""
Asigtext.Text = ""
Cmdasignar.Enabled = True
Cmddesasignar.Enabled = False
Cmdasignar.SetFocus
Exit Sub
ElseIf itmx1.SubItems(2) <> Lvwmateriaprima1.SelectedItem.SubItems(2) Then
If Not Lvwmateriaprima1.SelectedItem Is Nothing Then
Set itmx1 = Lvwmateriaprima1.ListItems.Add(, , Lvwmateriaprima.SelectedItem.Text)
Lvwmateriaprima1.Sorted = True
Itmx.SubItems(1) = Lvwmateriaprima1.SelectedItem.SubItems(1)
Itmx.SubItems(2) = Lvwmateriaprima1.SelectedItem.SubItems(2)
Itmx.SubItems(3) = Lvwmateriaprima1.SelectedItem.SubItems(3)
Itmx.SubItems(4) = Lvwmateriaprima1.SelectedItem.SubItems(4)
Itmx.SubItems(5) = Lvwmateriaprima1.SelectedItem.SubItems(5)
End If
End If
Next itmx1
End If
End If
End Sub
Cuando selección desasignar, tiene dos opciones, el recorre el lvw para encontrar el seleccionado en lvw1, cuando lo encuentra realiza ciertas acciones, lo que no se, es cual es el código para indicarle si no lo encuentra. Aquí envío el código como lo tengo diseñado hasta el momento:
Private Sub Cmddesasignar_Click()
Dim adbgrabar As ADODB.Recordset
Dim AdbInfo As ADODB.Recordset
Dim itmx1 As ListItem
Dim Retval1 As ValueConstants
Dim n As Integer
Dim Itmx As ListItem
If Lvwmateriaprima1.ListItems.Count > 0 And Not Lvwmateriaprima1.SelectedItem Is Nothing Then
Cantext.Visible = True
Cantext.Enabled = True
n = Lvwmateriaprima.ListItems.Count - 1
If Lvwmateriaprima.ListItems.Count > 1 Then
For Each itmx1 In Lvwmateriaprima.ListItems
If itmx1.SubItems(2) = Lvwmateriaprima1.SelectedItem.SubItems(2) Then
Cantext.Text = Lvwmateriaprima1.SelectedItem.SubItems(4)
Asigtext.Text = Lvwmateriaprima.SelectedItem.SubItems(4)
Lvwmateriaprima.ListItems(Lvwmateriaprima.ListItems.Count - n).Selected = True
acumulab
Lvwmateriaprima.Enabled = True
Lvwmateriaprima.SelectedItem.SubItems(4) = Asigtext.Text
Lvwmateriaprima1.ListItems.Remove (Lvwmateriaprima1.SelectedItem.Index)
Cantext.Text = ""
Asigtext.Text = ""
Cmdasignar.Enabled = True
Cmddesasignar.Enabled = False
Cmdasignar.SetFocus
Exit Sub
ElseIf itmx1.SubItems(2) <> Lvwmateriaprima1.SelectedItem.SubItems(2) Then
If Not Lvwmateriaprima1.SelectedItem Is Nothing Then
Set itmx1 = Lvwmateriaprima1.ListItems.Add(, , Lvwmateriaprima.SelectedItem.Text)
Lvwmateriaprima1.Sorted = True
Itmx.SubItems(1) = Lvwmateriaprima1.SelectedItem.SubItems(1)
Itmx.SubItems(2) = Lvwmateriaprima1.SelectedItem.SubItems(2)
Itmx.SubItems(3) = Lvwmateriaprima1.SelectedItem.SubItems(3)
Itmx.SubItems(4) = Lvwmateriaprima1.SelectedItem.SubItems(4)
Itmx.SubItems(5) = Lvwmateriaprima1.SelectedItem.SubItems(5)
End If
End If
Next itmx1
End If
End If
End Sub
1 respuesta
Respuesta de Roberto Alvarado
1