No puede hacer una selección múltiple en vista hoja de datos para eliminar varios registros, como alternativa puede utilizar un cuadro de lista y confingurarlo como selección "Simple". Observe este ejemplo
Hago clic sobre el cliente que quiero eliminar de la tabla, hago clic en el botón Eliminar y obtengo:
Hago clic en Sí y obtengo:
Con esto el cuadro de lista ahora no aparecen los registros eliminados.
CÓDIGO DEL BOTÓN ELIMINAR
Private Sub btnGuardar_Click()
On Error GoTo hay_error
Dim sFiltro As String
Dim varPos As Variant
Dim strSeparador As String
If lstClientes.ItemsSelected.Count = 0 Then
MsgBox "No ha seleccionado los registros a retirar", vbInformation, "Le informo"
Exit Sub
End If
strSeparador = vbCrLf
For Each varPos In lstClientes.ItemsSelected
sFiltro = sFiltro & Format(Me.lstClientes.Column(2, varPos), "##,###") & strSeparador
Next varPos
If sFiltro <> "" Then
sFiltro = Left(sFiltro, Len(sFiltro) - 1)
End If
If MsgBox("Cédula" & vbCrLf & "--------------" & vbCrLf & sFiltro & vbCrLf & vbCrLf & _
"¿Elimina estos registros? ", vbQuestion + vbYesNo + vbDefaultButton2, "Eliminar") = vbYes Then
For Each varPos In lstClientes.ItemsSelected
CurrentDb.Execute "DELETE FROM tblterceros WHERE idte=" & Me.lstClientes.Column(0, varPos)
Next varPos
If Err.Number = 0 Then
MsgBox "Registros eliminados satisfactorialmente", vbInformation, "Eliminar"
Me.lstClientes.Requery
End If
End If
hay_error_exit:
Exit Sub
hay_error:
MsgBox "Ocurrió el error " & Err.Number & vbCrLf & Err.Description, vbCritical, "Error..."
Resume hay_error_exit
End Sub
Para adaptarlo a su necesidad cambie el nombre de la tabla tblterceros por su su tabla y el camo idte por el ID respectivo.
Ahora, si quiere el ejemplo lo puede solicitar a [email protected] favor en el asunto hacer referencia a la pregunta.