No dices si los datos ya están o los vas a poner después. Vamos a suponer que ya están y vamos a suponer( que es mucho suponer) que consigo explicarme. Si tienes una tabla como la imagen
Crea una tabla Casos, igual a la anterior pero el id numérico, Supongamos que tienes un formulario
En el evento al hacer clic del botón le pongo(prepárate)
DoCmd.RunCommand acCmdSaveRecord
Dim a As Integer
For a = 1 To Form.Recordset.RecordCount
Contador = Nz(DCount("cliente", "atributo", "cliente=forms!atributo!cliente and id<=" & Me.Id & ""))
DoCmd.GoToRecord , , acNext
Next
DoCmd.SetWarnings False
DoCmd.GoToRecord , , acFirst
Dim i As Integer
For i = 1 To Form.Recordset.RecordCount
Select Case Contador
Case Is = 1
DoCmd.RunSQL "insert into casos(cliente,casos,contador)values(cliente,casos,contador)"
Case Is = 2
Dim b As String
b = DLookup("casos", "atributo", "cliente=forms!atributo!cliente and contador=1") & "," & Casos
DoCmd. RunSQL "insert into casos(cliente, casos, contador)values(cliente,'" & b & "', contador)"
DoCmd.RunSQL "delete * from casos where cliente=forms!atributo!cliente and contador<2"
Case Is = 3
Dim c As String
c = DLookup("casos", "atributo", "cliente=forms!atributo!cliente and contador=1") & "," & DLookup("casos", "atributo", "cliente=forms!atributo!cliente and contador=2") & "," & Casos
DoCmd. RunSQL "insert into casos(cliente, casos, contador)values(cliente,'" & c & "', contador)"
DoCmd.RunSQL "delete * from casos where cliente=forms!atributo!cliente and contador<3"
Case Is = 4
Dim d As String
d = DLookup("casos", "atributo", "cliente=forms!atributo!cliente and contador=1") & "," & DLookup("casos", "atributo", "cliente=forms!atributo!cliente and contador=2") & "," & DLookup("casos", "atributo", "cliente=forms!atributo!cliente and contador=3") & "," & Casos
DoCmd. RunSQL "insert into casos(cliente, casos, contador)values(cliente,'" & d & "', contador)"
DoCmd.RunSQL "delete * from casos where cliente=forms!atributo!cliente and contador<4"
End Select
DoCmd.GoToRecord , , acNext
Next
DoCmd.GoToRecord , , acFirst
Form.RecordSource = "select * from casos"
Con lo que el formulario te quedará
El cuadro de texto Contador, se puede poner como oculto o quitarlo. Lo he dejado a la vista para que se vea el proceso.
1º Va contando registro a registro cuantas veces se repite un cliente con un caso y se lo pone en el campo contador. Como en la imagen
Verás que Pepe ha llegado a 3, María y Ramón a 2
2º Luego va registro a registro insertando en la tabla Casos los valores y en caso de que ingrese, por ejemplo Pepe Verde, amarillo elimina el registro de pepe verde. Luego cuando inserte Pepe Verde, Amarillo, No hace nada elimina Pepe Verde, Amarillo y te queda la tabla Casos como
Y por último le digo que el origen del formulario sea la tabla Casos.