Eliminar registros de una base de datos

Hola de nuevo, tengo un problema al eliminar datos de la base de datos perteneciente a una tabla llamada Legalización y a la vez eliminar los datos de una tabla llamada recibos, tengo este código, espero que me pueda ayudar.
Este es el código:
Private Sub cmdBorrar_Click()
Dim msg As Integer
msg = MsgBox("DESEA ELIMINAR EL REGISTRO?", vbYesNo, "T & T Construcciones")
If msg = vbNo Then Exit Sub
With Rec2
    .Delete
    .MovePrevious
    If .EOF Then .MoveLast
    If .BOF Then .MoveFirst
End With
With Rec3
    .Delete
    .MovePrevious
    If .EOF Then .MoveLast
    If .BOF Then .MoveFirst
End With
Display
Display2
End Sub
Rec y Rec2 son recordset.

1 respuesta

Respuesta
1
El error ocurre porque el for va hasta el final, me explico tienes un recordset de 10 regiustros, eliminas 1, pero el for no se entera que el ultimo registro ya no es el 10 si no el 9, entonces cuanto intenta eliminar el registro 10 da error porque no ecxiste.
With Rec3
    For i = 1 To Me.DataGrid1.ApproxCount
        .Delete
    Next
End With

Cambie el código como este y cuando ejecuto la aplicación paso por paso F8 no mel anza ningún error y elimina todo correctamente, pero ya cuando la ejecuto sin el F8 me aparece el error .
Error '-2147217885 (80040e23)'en tiempo de ejecución:
El identificador de fila se refirió a una fila eliminada o a una fila maraca para eliminar.
En el código debo colocar .movenext y .moveprevious:
With Rec3
    For i = 1 To Me.DataGrid1.ApproxCount
        .Delete
      .MovePrevious
.MoveNext
    Next
End With
porque cuando pongo estos codigos me sale error, al igual que el moveprevious y si dejo el movenext no sale error, pero cuando la base de datos esta vacia me aparece otro error, como puedo solucionar ese error?
Pregunta si es el fin de archivo recordset. Eof()
¿Qué pena, como lo debo colocar?
If rec3.EOF then
rec3.MoveFirst
End if

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas