Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: lucius en Diciembre 08, 2012, 07:26:08 pm

Título: Limpiar recordset enlazado en Datagrid
Publicado por: lucius en Diciembre 08, 2012, 07:26:08 pm
Bueno anteriormente cree un tema similar que se fue por otro lado por eso creo otro nuevo, bueno lo que quiero es lo sigte. y este es mi codigo
Código: [Seleccionar]
Public Sub TablaTemp()

    rsTemp.CursorType = adOpenStatic
    rsTemp.Fields.Append "codprod", adVarChar, 10, adFldIsNullable
    rsTemp.Fields.Append "nomprod", adVarChar, 250, adFldIsNullable
    rsTemp.Open
    Set DataGrid1.DataSource = rsTemp
End Sub


Private Sub Form_Load()
    Call TablaTemp
End Sub


Private Sub Command1_Click()
    'Cada vez que se preciona el boton se ingresa un grupo de registros
    'pueden ser los mismo o un random, olvidense del "do while" para este ejemplo no tiene importancia pero por si las moscas lo coloco
    'Do..
    rsTemp.AddNew
          rsTemp.Fields(0) = Trim(Text2)
          rsTemp.Fields(1) = Trim(Text3)
    rsTemp.Update
    'Loop While...

End Sub

El problema esta en que cada vez que preciono el boton la data anterior se mantiene en el grid, mejor dicho necesitaria aplicar un List1.clear por decirlo de alguna manera y asi limpiar los valores anteriores del grid, se entiende?
Se me olvidaba no estoy trabajando como una BD todo es en memoria como si fuera un List1.

Habia pensado utilizar algo como esto,pero creo que debe haber otra alternativa y no el guerrazo que estoy haciendo de recorre y borra.
Código: [Seleccionar]
         While Not .EOF
               .Delete
               .MoveNext
         Wend

Título: Re:Limpiar recordset enlazado en Datagrid
Publicado por: k_arlytos en Diciembre 08, 2012, 10:37:21 pm
y si capturas el ID del item ingresado y haces una busqueda si lo encuentra entonces se va a posicionar en un cursor, luego lo eliminas

    With rsDetalleDocumentoCompra
        .Find "ProductoID='" + sProductoID + "'", 0, 1, 1 'Aqui es donde se va a posicionar el cursor
        .Delete                                                                 'Aqui va eliminar la posicion del cursor actual
    End With
Título: Re:Limpiar recordset enlazado en Datagrid
Publicado por: k_arlytos en Diciembre 08, 2012, 11:13:10 pm
o quieres eliminar desde un indice hasta abajo?
ejemplo
Posicion     Codigo         Descripcion
1             -  "P01" -        "lba bla"
2             -  "P05" -        "lba bla"           
3             -  "P08" -        "lba bla"
4             -  "P07" -        "lba bla"
5             -  "P06" -        "lba bla"
6             -  "P04" -        "lba bla"
7             -  "P03" -        "lba bla"
8             -  "P09" -        "lba bla"
9             -  "P10" -        "lba bla"
10           -  "P02" -        "lba bla"

y si estas enfocado en la fila 7 del Grid
y quieres eliminar el 7,8,9 y 10

Podrias usar la funcion que te mencione arriba
   
    dim sProductoID  as string, iPosicionFila as integer 'para recuperar la fila

    iPosicionFila=7                    'Esto lo puedes recuperar con unas de las propiedades de la grilla

'no se si funcionara pero esa es mi idea
for i=iPosicionFila to rsDetalleDocumentoCompra.RecordCount

     sProductoID="P03"            'Esto lo puedes recuperar con unas de las propiedades de la grilla

    With rsDetalleDocumentoCompra
       
        .Find "ProductoID='" + sProductoID + "'", 0, 1, 1 'Aqui es donde se va a posicionar el cursor

        .Delete                                                                 'Aqui va eliminar la posicion del cursor actual

        .movenext                                                            'no lo e probado pero creo que avanzaria hasta el final y asi se
                                                                                     'podria liminar
    End With       

next i


Título: Re:Limpiar recordset enlazado en Datagrid
Publicado por: lucius en Diciembre 09, 2012, 01:41:27 am
hola k_rlitos y para borrar todo como haria.
Título: Re:Limpiar recordset enlazado en Datagrid
Publicado por: k_arlytos en Diciembre 09, 2012, 01:44:01 am
has probado
eliminar el objeto contenedor de datos??

set rsDetalle=nothing??
Título: Re:Limpiar recordset enlazado en Datagrid
Publicado por: lucius en Diciembre 09, 2012, 02:47:10 am
Si tienes razon se me paso hacer eso jeje :-[, gracias por la ayuda, saludos