Sigo con el ejemplo de la base de datos de ejemplo que trae el manual de Gambas.
Ahora me ha tocado sustituir el
En la parte de eliminar un registro, estoy usando el mismo evento. KeyRelease.
Compruebo que la tecla pulsada es suprimir....etc,etc.
Esto es con un
Public Sub tabla_KeyRelease()
If Key.Code = Key.Delete Then
If Tabla.Current = Null Then Return
If Tabla.Current.Selected = False Then Return
hConn = ModGestBase.ConectarConBase()
Try hConn.Exec("delete from datos where titulo=&1", Tabla.Current.Key)
If Error Then
Message.Error("Imposible borrar el registro")
Else
Tabla.Current.Delete()
Endif
ModGestBase.CerrarConexion()
Endif
End
If Key.Code = Key.Delete Then
If Tabla.Current = Null Then Return
If Tabla.Current.Selected = False Then Return
hConn = ModGestBase.ConectarConBase()
Try hConn.Exec("delete from datos where titulo=&1", Tabla.Current.Key)
If Error Then
Message.Error("Imposible borrar el registro")
Else
Tabla.Current.Delete()
Endif
ModGestBase.CerrarConexion()
Endif
End
Para borrar un registro o fila del GridView lo hice de esta forma:
Y esto es con un GridView.
Public Sub grdTabla_KeyRelease()
If Key.Code = Key.Delete Then
If grdTabla.Current = Null Then Return
If grdTabla.Select(grdTabla.Row) = Null Then Return
hConn = ModGestBase.ConectarConBase()
Try hConn.Exec("delete from datos where titulo=&1", grdTabla[grdTabla.row, 0].Text)
If Error Then
Message.Error("Imposible borrar el registro")
Else '
grdTabla.Rows.Remove(grdTabla.row)
Endif
ModGestBase.CerrarConexion()
Endif
End
If Key.Code = Key.Delete Then
If grdTabla.Current = Null Then Return
If grdTabla.Select(grdTabla.Row) = Null Then Return
hConn = ModGestBase.ConectarConBase()
Try hConn.Exec("delete from datos where titulo=&1", grdTabla[grdTabla.row, 0].Text)
If Error Then
Message.Error("Imposible borrar el registro")
Else '
grdTabla.Rows.Remove(grdTabla.row)
Endif
ModGestBase.CerrarConexion()
Endif
End
Se parece en que si la celda seleccionada tiene un valor o es nula.
En cuanto en el GridView, selected, lo más parecido que encontré fue Select y usar GridView.Row, que devuelve el actual.
Seguramente tiene una forma mas fácil de hacer. O eliminar alguna.
Saludos