Imprimir página | Cerrar ventana

Eliminar registros en un recordset

Impreso de: Foro de Access y VBA
Categoría: Otros de Microsoft: Windows y Office
Nombre del foro: Visual Basic Clásico (VB3...VB6)
Descripción del foro: Foro de Visual Basic (No VBA)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=85019
Fecha de impresión: 23/Abril/2024 a las 15:08


Tema: Eliminar registros en un recordset
Publicado por: Emil
Asunto: Eliminar registros en un recordset
Fecha de publicación: 15/Febrero/2020 a las 15:39
Obtengo un recordset con artículos vendidos en un periodo y quiero eliminar los registros del mismo artículo, dejando solo el de fecha más reciente. Después de muchas pruebas, me rindo, pues a pesar de saber que con cada registro borrado el recordsetcount reduce uno y que después de eliminado he de mover al siguiente para activarlo, no consigo terminar bien el bucle; parece que llega al final y queda en vacío antes de lo que yo pienso. Este es mi bucle:

cont = 1
INICIO:

If cont = rs.RecordCount Then
GoTo Final
Else
nombre = rs.Fields(0): fchavta = rs.Fields(3): rs.MoveNext


If nombre = rs.Fields(0) Then
If rs.Fields(3) > fchavta Then
rs.MovePrevious: rs.Delete: rs.MoveNext: GoTo INICIO
Else
rs.Delete: rs.MoveNext: GoTo INICIO
End If
Else
cont = cont + 1: GoTo INICIO
End If
End If



Final:
dgLento.ClearFields
Set dgLento.DataSource = rs
FormatoDataGrid

NOTA.-
Si dispongo el tope cont=rs.recordcount -1, se ejecuta bien el bucle, pero deja dos registros, no uno como yo quiero.

¿Alguien amable que ayude?
Muchas gracias
Emilio



Respuestas:
Publicado por: xavi
Fecha de publicación: 17/Febrero/2020 a las 11:46
Propuesta de táctica
Obtén la fecha más reciente del artículo.
Crea una consulta de eliminación dónde se obvia el registro de esa fecha.

¿Te vale?

PD: ¿Esto es VB o VBA?





-------------
Xavi, un minyó de Terrassa

http://www.llodax.com" rel="nofollow - Mi web



Imprimir página | Cerrar ventana