• Martes 21 de Mayo de 2024, 01:09

Autor Tema:  Como Eliminar Varios Registros Seleccionados De Un  (Leído 1437 veces)

stevejobs

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Como Eliminar Varios Registros Seleccionados De Un
« en: Lunes 16 de Junio de 2008, 03:27 »
0
Hola
Deseo saber como eliminar varios registros a la vez de un msflexgrid, pero seleccionando con el teclado o con el cursor del mouse un rango de registros del msflexgrid y pulsar un boton y borrar la seleccion  en tiempo de ejecucion, no de base de datos.

Pasos:

1. Tengo un msflexgrid con varios registros y n columnas (no importa el numero de columnas)

2. Supongamos que el msf tiene 10 registros y quiero eliminar del registro numero 3 al 6.

3. Asi que en mi aplicacion quiero sombrear con el cursor del mouse o con las teclas del teclado del 3er registro al 6to.

4. Una vez sombreados o seleccionados con el cursor procedo a presionar un boton o pulsar la tecla Delete del teclado y eliminar esos registros seleccionados a la vez. Esa accion es la que necesito (eliminar varios registros a la vez, dependiendo de la seleccion que haga con el teclado o el mouse y automaticamente se elimine ese rango de registros.)

Haber si me pueden ayudar.

Gracias

necro_rk

  • Nuevo Miembro
  • *
  • Mensajes: 2
  • Nacionalidad: mx
    • Ver Perfil
Re: Como Eliminar Varios Registros Seleccionados De Un
« Respuesta #1 en: Jueves 31 de Julio de 2008, 04:54 »
0
En este codigo el msflexgrid se llama "Grid" [es para simplificar el codigo] y tiene una fila fija [fixedRows=1].

Private Sub Grid_KeyDown(KeyCode As Integer, Shift As Integer)
With Grid
    If KeyCode = 46 Then 'supr
        If .Rows = 1 Then Exit Sub 'si es la fila fija la seleccionada no hacer nada
        If .Rows = 2 Then 'si son 2 filas eliminamos la 1
            .Rows = 1
            Exit Sub
        End If
        'checamos si hay varios seleccionados
        'sacamos la primera y ultima fila para eliminarlas
        If .Row < .RowSel Then
            mx = .RowSel
            mn = .Row
        Else
            mx = .Row
            mn = .RowSel
        End If
        For S = mn To mx
            If .Rows > 2 Then
                .RemoveItem (mn)
            Else
                .Rows = 1
            End If
        Next
    End If
End With
End Sub

Ojala te sirva de algo... :)