Lo puede hacer de varias formas. En este ejemplo lo hago mediante un formulario, un cuadro combinado y una función que utiliza DAO.
FORMULARIO
Selecciono 10 registros, es decir, hasta el ID 19, obtengo esta pregunta.
Hago clic en Sí y se ejecuta la función.
Obtengo en el formulario los registros que hay quedado. Observe que están a partir del ID 20.
CÓDIGO DEL CUADRO COMBINADO RETIRAR
Private Sub cboRetirar_AfterUpdate()
If MsgBox("¿Está seguro de retirar " & Me.cboRetirar & " registros?", vbYesNo + vbQuestion + vbDefaultButton2, "Retirando registros") = vbYes Then
Call retirar(Me.cboRetirar)
Me.Requery
End If
End Sub
CÓDIGO DE LA FUNCIÓN RETIRAR
Public Function retirar(Optional lnRegistros As Integer)
On Error GoTo hay_error
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strSQL As String
Dim cuento As Long
If CLng(lnRegistros) = 0 Then
MsgBox "Debe indicar una cantidad de registros", vbInformation, "Error.."
Exit Function
End If
'Valido que el número de registros de la tabla sea igual
'o mayor que la cantidad a eliminar
cuento = DCount("*", "Productos")
If cuento >= lnRegistros Then 'Retiro
strSQL = "SELECT TOP " & Val(lnRegistros) & " Id,producto" & vbCrLf
strSQL = strSQL & " FROM Productos ORDER BY Id;"
Else
MsgBox "El número de registros es menor que la cantidad a retirar", vbInformation, "Retirando registros"
Exit Function
End If
Set db = CurrentDb
Set rs = db.OpenRecordset(strSQL)
Do Until rs.EOF
rs.Delete
rs.MoveNext
Loop
If Err.Number = 0 Then
MsgBox "Se retiraron " & lnRegistros & " registros satisfactoriamente", vbInformation, "Retirando registros"
End If
hay_error_exit:
Exit Function
hay_error:
MsgBox "Ocurrió el error " & Err.Number, vbCritical, "Error..."
Resume hay_error_exit
End Function
Si quiere el ejemplo lo puede solicitar a [email protected], favor en el asunto anotar la consulta.