Autor Tema: Mejorar esta funcion con el control ListView  (Leído 3321 veces)

0 Usuarios y 1 Visitante están viendo este tema.

E N T E R

  • Petabyte
  • ******
  • Mensajes: 1062
  • Reputación: +57/-13
  • www.enterpy.com
    • Ver Perfil
    • www.enterpy.com
Mejorar esta funcion con el control ListView
« en: Octubre 13, 2014, 06:03:30 pm »
Hola tengo esta función me funciona bien este método si el item esta en el SubItems del control ListView.

Lo que pasa es que el control ListView tiene las propiedades

ListView1.SelectedItem.Text              = Este seria la primera columna del ListView
ListView1.SelectedItem.SubItems(1)  = Este seria la segunda columna del ListView

Esta es mi funcion para eliminar un registro de una tabla de acuerdo a lo que selecciono, Tengo 2 funciones que hace la misma cosa y es lo que quiero unir pero no puedo por que no se como
decirle en que columna esta el que yo quiero eliminar por que a veces esta en la primera columna o a veces esta en el subitems.


Código: (VB) [Seleccionar]
Public Sub EliminarIRegistroSubItems(ByVal xLisView As ListView, ByVal xColum As Integer)
   
    ComandoSQL = "DELETE FROM articulos WHERE id=" & xLisView.SelectedItem.SubItems(xColum)
    cnADO.Execute ComandoSQL

End Sub

Código: (VB) [Seleccionar]
Public Sub EliminarIRegistroText(ByVal xLisView As ListView)
   
    ComandoSQL = "DELETE FROM articulos WHERE id=" & xLisView.SelectedItem.Text
    cnADO.Execute ComandoSQL

End Sub

Código: (VB) [Seleccionar]
Private Sub Command1_Click()
     Call EliminarIRegistroSubItems(ListView1, 2)
End Sub

Código: (VB) [Seleccionar]
Private Sub Command1_Click()
     Call EliminarIRegistroText(ListView1)
End Sub
« última modificación: Octubre 13, 2014, 06:06:41 pm por E N T E R »
CIBER GOOGLE - CONCEPCIÓN PARAGUAY
www.enterpy.com
Primera regla de la programacion, para que vas a hacerlo complicado si lo puedes hacer sencillo

E N T E R

  • Petabyte
  • ******
  • Mensajes: 1062
  • Reputación: +57/-13
  • www.enterpy.com
    • Ver Perfil
    • www.enterpy.com
Re:Mejorar esta funcion con el control ListView
« Respuesta #1 en: Octubre 13, 2014, 06:22:08 pm »
Solucionado de una forma rebuscada jeje

Código: (VB) [Seleccionar]
Public Sub EliminarRegistro(ByVal xTabla As String, ByVal xLisView As ListView, xText As Boolean, ByVal xColum As Integer, ByVal xMensaje As String, ByVal xFocus As Control)

    If xLisView.ListItems.Count = 0 Then
        MsgBox "Debe seleccionar un registro para eliminar", vbInformation
        xLisView.SetFocus
    Else
        Dim Msg As String
        Msg = MsgBox("Esta seguro que va eliminar este registro..." & xMensaje, vbYesNo + vbInformation)
       
        If Msg = vbYes Then
            If xText = True Then
                ComandoSQL = "DELETE FROM " & xTabla & " WHERE id=" & xLisView.SelectedItem.Text
            Else
                ComandoSQL = "DELETE FROM " & xTabla & " WHERE id=" & xLisView.SelectedItem.SubItems(xColum)
            End If
            cnADO.Execute ComandoSQL
        End If
       
    End If
   
End Sub

Código: (VB) [Seleccionar]
Private Sub cmdEliminar_Click()
    Call EliminarRegistro("productos", LProductos, True, 0, "", LProductos)
End Sub
CIBER GOOGLE - CONCEPCIÓN PARAGUAY
www.enterpy.com
Primera regla de la programacion, para que vas a hacerlo complicado si lo puedes hacer sencillo

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:Mejorar esta funcion con el control ListView
« Respuesta #2 en: Octubre 16, 2014, 12:10:30 am »
hola porque directamente no pasas el texto del item o subitem en vez de pasar el objeto listview y la columna, ahora si es por otro motivo que no detallas, podes usar el numero de columna en caso de ser 0 usa text de lo contrario SubItems(xColum)

Saludos.

E N T E R

  • Petabyte
  • ******
  • Mensajes: 1062
  • Reputación: +57/-13
  • www.enterpy.com
    • Ver Perfil
    • www.enterpy.com
Re:Mejorar esta funcion con el control ListView
« Respuesta #3 en: Octubre 16, 2014, 10:37:11 am »
mm No te entendí Leandro.

Yo lo que pretendo es borrar un registro de una tabla segun lo que he seleccionado en el ListView. y como dije a veces a veces el datos que necesito esta en el SelectedItem.Text o a veces en el SelectedItem.SubItems(nColumna)
CIBER GOOGLE - CONCEPCIÓN PARAGUAY
www.enterpy.com
Primera regla de la programacion, para que vas a hacerlo complicado si lo puedes hacer sencillo

Jeronimo

  • Gigabyte
  • ****
  • Mensajes: 402
  • Reputación: +33/-2
    • Ver Perfil
Re:Mejorar esta funcion con el control ListView
« Respuesta #4 en: Octubre 17, 2014, 08:32:27 am »
Lo que entiendo que dice Leandro es que en lugar de pasar como parámetros el listview, el índice de la columna, etcétera, hagas la selección del dato antes de pasárselo a la función y luego solo le pases, por ejemplo, el id del registro que querés eliminar.
Por ejemplo:
Código: (VB) [Seleccionar]
Dim IdRegistro AS Double
If ... Then
    IdRegistro = ListView1.Selecteditem.Text
Else
    IdRegistro = ListView1.SelectedItem.Subitems(1)
End If
Call EliminarRegistro ("productos", ListView1, IdRegistro)

Y en la función que elimina el registro solo tendrías las instrucciones para esa tarea.
Espero haber interpretado bien las cosas.
Saludos.

Jerónimo