Vamos a ver si me explico, que siempre es lo más difícil. Supongamos que tengo una tabla Codigos

Y una tabla Referencias

Creo una consulta como la de la imagen, para que me diga cuantas veces se repite un código y le añado un campo Orden, que por un lado me va a decir lo anterior y me servirá luego para el código

Con lo cual al abrirla

Puedes ver que el código 11111, por ejemplo, tiene tres registros
Por último tengo la tabla Resumen

En el formulario Referencias le pongo un botón

Que al pulsarlo me deja la tabla Resumen como

El código del botón es
Private Sub Comando5_Click()
DoCmd.RunSQL "insert into resumen(codigo) select codigo from referencias group by codigo"
DoCmd.GoToRecord , , acFirst
Dim i As Byte
For i = 1 To Me.Recordset.RecordCount
If DLast("orden", "consulta1", "codigo='" & Me.Codigo & "'") = 1 Then
DoCmd.RunSQL "update resumen set ref1= dlookup(""referencia"",""consulta1"",""codigo='" & Me.Codigo & "' and orden=1"") where codigo='" & Me.Codigo & "'"
ElseIf DLast("orden", "consulta1", "codigo='" & Me.Codigo & "'") = 2 Then
DoCmd.RunSQL "update resumen set ref1= dlookup(""referencia"",""consulta1"",""codigo='" & Me.Codigo & "' and orden=1"") where codigo='" & Me.Codigo & "'"
DoCmd.RunSQL "update resumen set ref2= dlookup(""referencia"",""consulta1"",""codigo='" & Me.Codigo & "' and orden=2"") where codigo='" & Me.Codigo & "'"
ElseIf DLast("orden", "consulta1", "codigo='" & Me.Codigo & "'") = 3 Then
DoCmd.RunSQL "update resumen set ref1= dlookup(""referencia"",""consulta1"",""codigo='" & Me.Codigo & "' and orden=1"") where codigo='" & Me.Codigo & "'"
DoCmd.RunSQL "update resumen set ref2= dlookup(""referencia"",""consulta1"",""codigo='" & Me.Codigo & "' and orden=2"") where codigo='" & Me.Codigo & "'"
DoCmd.RunSQL "update resumen set ref3= dlookup(""referencia"",""consulta1"",""codigo='" & Me.Codigo & "' and orden=3"") where codigo='" & Me.Codigo & "'"
End If
DoCmd.GoToRecord , , acNext
Next
End Sub
Es decir, primero inserta los códigos y luego va actualizando los campos en función de si en la consulta el último valor del campo Orden es 1, 2 ó 3
¿Qué quieres añadirle mas campos a la tabla Resumen? Basta con añadir condiciones ELSEIF a la instrucción.