Estoy haciendo una aplicación de Visual Basic con una base de datos de Microsoft Access.

Estoy haciendo una aplicación en visual basic contra una base de datos en access
que permite hacer operaciones típicas de registros (borrar, actualizar, buscar...)
La base de datos tiene:
- Un campo Numero: autonumérico y clave primaria
- Un campo nombre: de tipo texto
- Un campo descripción: de tipo texto
El problema que tengo es que cuando borro el unico registro introducido
me da un error que me indica: que "el valor BOF o EOF es true, o el actual registro se elimino;
La operación solicitada requiere un registro actual".
No entiendo por que. El código que utilizo para eliminar registros es:
Private Sub CMDBORRAR_Click()
Dim r As Integer '
On Error GoTo Error
r = MsgBox("¿Desea borrar el registro?", vbYesNo, "Atencion")
If r <> vbYes Then Exit Sub
Adodc1.Recordset.Delete
Adodc1.Recordset.MoveNext
If Adodc1.Recordset.EOF Then
Adodc1.Recordset.MoveLast
End If
Exit Sub
Error:
r = MsgBox(Err.Description, vbOKOnly, "Se ha producido un error")
Adodc1.Recordset.CancelUpdate
End Sub
Luego con otro control grabo la modificación.
¿Cómo puedo solucionar el error o manipular el error?

1 Respuesta

Respuesta
1
El error esta en Adodc1. Recordset. MoveNext porque como ya no hay registros ya no se puede ir al siguiente, lo que puedes hacer es:
If not Adodc1.Recordset.EOF Then
Adodc1.Recordset.MoveNext
End If
Y listo
Te da ese error porque no lo has posicionado en el primer registro para ello el código es:
Adodc1. Recordset. MoveFirst
Hiria entre las instrucciones:
r = MsgBox("¿Desea borrar el registro?", vbYesNo, "Atencion")
If r <> vbYes Then Exit Sub
Adodc1.Recordset.MoveFirst '<--
Adodc1.Recordset.Delete
Adodc1. Recordset. MoveNext
Saludos.
Eh.
No olvides finalizar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas