Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: E N T E R 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.
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
Public Sub EliminarIRegistroText(ByVal xLisView As ListView)
ComandoSQL = "DELETE FROM articulos WHERE id=" & xLisView.SelectedItem.Text
cnADO.Execute ComandoSQL
End Sub
Private Sub Command1_Click()
Call EliminarIRegistroSubItems(ListView1, 2)
End Sub
Private Sub Command1_Click()
Call EliminarIRegistroText(ListView1)
End Sub
-
Solucionado de una forma rebuscada jeje
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
Private Sub cmdEliminar_Click()
Call EliminarRegistro("productos", LProductos, True, 0, "", LProductos)
End Sub
-
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.
-
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)
-
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:
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