Autor Tema: Limpiar recordset enlazado en Datagrid  (Leído 3147 veces)

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

lucius

  • Gigabyte
  • ****
  • Mensajes: 263
  • Reputación: +6/-5
    • Ver Perfil
Limpiar recordset enlazado en Datagrid
« 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


k_arlytos

  • Megabyte
  • ***
  • Mensajes: 211
  • Reputación: +2/-4
    • Ver Perfil
Re:Limpiar recordset enlazado en Datagrid
« Respuesta #1 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
"Comentar el código es como limpiar el cuarto de baño; nadie quiere hacerlo, pero el resultado es siempre una experiencia más agradable para uno mismo y sus invitados"

k_arlytos

  • Megabyte
  • ***
  • Mensajes: 211
  • Reputación: +2/-4
    • Ver Perfil
Re:Limpiar recordset enlazado en Datagrid
« Respuesta #2 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


"Comentar el código es como limpiar el cuarto de baño; nadie quiere hacerlo, pero el resultado es siempre una experiencia más agradable para uno mismo y sus invitados"

lucius

  • Gigabyte
  • ****
  • Mensajes: 263
  • Reputación: +6/-5
    • Ver Perfil
Re:Limpiar recordset enlazado en Datagrid
« Respuesta #3 en: Diciembre 09, 2012, 01:41:27 am »
hola k_rlitos y para borrar todo como haria.

k_arlytos

  • Megabyte
  • ***
  • Mensajes: 211
  • Reputación: +2/-4
    • Ver Perfil
Re:Limpiar recordset enlazado en Datagrid
« Respuesta #4 en: Diciembre 09, 2012, 01:44:01 am »
has probado
eliminar el objeto contenedor de datos??

set rsDetalle=nothing??
"Comentar el código es como limpiar el cuarto de baño; nadie quiere hacerlo, pero el resultado es siempre una experiencia más agradable para uno mismo y sus invitados"

lucius

  • Gigabyte
  • ****
  • Mensajes: 263
  • Reputación: +6/-5
    • Ver Perfil
Re:Limpiar recordset enlazado en Datagrid
« Respuesta #5 en: Diciembre 09, 2012, 02:47:10 am »
Si tienes razon se me paso hacer eso jeje :-[, gracias por la ayuda, saludos