Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Puede eliminar un registro existente en una tabla o un objeto Recordset de tipo dynaset mediante el método Delete . No puede eliminar registros de un objeto Recordset de tipo instantánea. El siguiente ejemplo de código elimina todos los registros duplicados de la tabla Shippers.
Sub DeleteDuplicateShippers()
Dim dbsNorthwind As DAO.Database
Dim rstShippers As DAO.Recordset
Dim strSQL As String
Dim strName As String
On Error GoTo ErrorHandler
Set dbsNorthwind = CurrentDb
strSQL = "SELECT * FROM Shippers ORDER BY CompanyName, ShipperID"
Set rstShippers = dbsNorthwind.OpenRecordset(strSQL, dbOpenDynaset)
' If no records in Shippers table, exit.
If rstShippers.EOF Then Exit Sub
strName = rstShippers![CompanyName]
rstShippers.MoveNext
Do Until rstShippers.EOF
If rstShippers![CompanyName] = strName Then
rstShippers.Delete
Else
strName = rstShippers![CompanyName]
End If
rstShippers.MoveNext
Loop
Exit Sub
ErrorHandler:
MsgBox "Error #: " & Err.Number & vbCrLf & vbCrLf & Err.Description
End Function
Cuando se usa el método Delete , el motor de base de datos de Access elimina inmediatamente el registro actual sin advertencias ni avisos. La eliminación de un registro no hace que el siguiente registro se convierta automáticamente en el registro actual; Para pasar al siguiente registro, debe usar el método MoveNext . Tenga en cuenta que una vez que se ha movido del registro eliminado, no puede volver a él.
Si intenta obtener acceso a un registro después de eliminarlo en un objeto Recordset de tipo tabla, verá el error 3167, "Se eliminó el registro". En un dynaset, verá el error 3021, "Sin registro actual".
Si tiene un clon recordset colocado en el registro eliminado e intenta leer su valor, verá el error 3167 independientemente del tipo de objeto Recordset . Si se intenta utilizar un marcador para trasladarse a un registro eliminado, también se producirá el error 3167.
Soporte técnico y comentarios
¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.