Lo más sencillo sería que encadenaras SQL para anexar datos:
Dim i As Integer
Dim miSQL As String
DoCmd.SetWarnings False 'Desactivas los avisos de confirmación de Access
For i = 1 To 10
'Construyes la SQL para cada valor de i
miSQL = "INSERT INTO NombreTaba (Nombre, DNI ...) VALUES ('" & Me.Controls("txtNombre" & i) & "','" & Me.Controls("txtDNI" & i) & ....& "')"
DoCmd.RunSQL miSQL 'Ejecutas la SQL para insertar los datos en la tabla
Next i
DoCmd.SetWarnings True 'Activas los avisos de nuevo
'Este For...Next es para limpiar los cuadros de texto
For i = 1 To 10
Me.Controls("txtNombre" & i) = Null
Me.Controls("txtDNI" & i) = Null
Next i
Consideraciones:
1º/ Has de cambiar NombreTabla por el nombre de tu tabla donde quiereas guardar los registros. Si el nombre lleva espacios, guiones... debe ir entre corchetes, por ejemplo: [Ventas Productos], [Compras-Libros]
2º/ Has de añadir el resto de campos donde van los puntos suspensivos
3º/ A la hora de asignar los valores, has de tener en cuenta que si son datos de tipo texto, han de ir entre comillas simples ('" & elValor & "'), si son de fecha, han de ir entre almohadillas y con formato americano ( #" & Format(elValor,"mm/dd/yyyy") & "# ), y si son numéricos, se pasan directamente
http://www.aulaclic.es/sql/t_6_1.htm
4º/ Fíjate en cómo hago referencia a los distintos cuadros de texto: Me. Controls("parte fija del nombre" & parte variable)